是否可以Select
使用Case
从多个字段中的一个字段中进行选择,具体取决于哪些字段为空?
我基本上想要为所有带有
逻辑的记录返回一个值Return $Value from FIeldA if not null
else from FieldB if not NULL
else from FieldC if not Null
else '0'
我使用Case / When / Then来比较特定字段的值,但不是比较字段之间的值而不确定是否可行。
答案 0 :(得分:2)
简短回答,使用COALESCE
:
SELECT COALESCE(FieldA, FieldB, FieldC, 0) AS FieldName
FROM tableName;
它将为您提供来自三个字段FieldA, FieldB, FieldC
的第一个不可为空的值。如果all都为null,那么它将返回0.您正在尝试做什么。
答案很长,使用CASE
表达式。
答案 1 :(得分:1)
如果要检查多个字段,如果为null,则返回相同的结果0,然后使用COALESCE
函数。这是简单的代码
SELECT COALESCE(filed1, filed2, filed3, 0) as output from table;
了解更多信息 https://www.w3schools.com/sql/func_sqlserver_coalesce.asp
额外选项如果您想使用条件选择归档然后用例。这是演示代码
SELECT CASE 1 WHEN 1 THEN 'this is case one'
WHEN 2 THEN 'this is case two'
ELSE 'this is not in the case'
END as 'how to execute case statement';
了解更多信息