2015-05-15 19 views
0

我有一个结构类似这样的SYBASE查询:Sybase CASE表达式的结果是否有默认的列名?

SELECT 
    case 
     when isnull(a,'') <> '' then a 
     else convert(varchar(20), b) 
    end 
FROM table_name 
WHERE b=123 

它曾经在一个名为列返回“案例”的结果“换算”。它现在在一个空字符串名称为''的列中返回'case'的结果。

这怎么可能?能否有一些数据库配置默认“没有名字的情况下”的结果?

(我已通过添加“作为计算”“结束”后固定在破碎的查询,但现在我想知道它是如何用于返回为“计算”之前,我添加了修复?)

回答

0

这是你想要的吗?

SELECT (case when isnull(a, '') <> '' then a 
      else convert(varchar(20), b) 
     end) as converted 
-------------^ 
FROM table_name 
WHERE b = 123; 

顺便说一句,你可以写select更简洁为:

SELECT coalesce(nullif(a, ''), b) as converted 
+0

感谢您的答复,但是这不是我要找的。我只是问是否可能有一些数据库配置默认没有名字的'案例'的结果。 – JayB

+0

@JayB。 。 。我从来没有听说过任何数据库中有这样的配置参数。 –

相关问题