Tsql 仅选择不为null的列,或者如果两个列都不为null,则选择一个特定的列
在下表中,我有一个名为ShortDesc的列和一个名为LongDesc的列。如果ShortDesc不是null,我想返回这个值。如果行中的ShortDesc列为null,我想返回LongDesc的值。如果ShortDesc和LongDesc都不为null,我只想返回ShortDesc(LongDesc需要作为null返回) 表事件Tsql 仅选择不为null的列,或者如果两个列都不为null,则选择一个特定的列,tsql,Tsql,在下表中,我有一个名为ShortDesc的列和一个名为LongDesc的列。如果ShortDesc不是null,我想返回这个值。如果行中的ShortDesc列为null,我想返回LongDesc的值。如果ShortDesc和LongDesc都不为null,我只想返回ShortDesc(LongDesc需要作为null返回) 表事件 ID ShortDesc LongDesc 0 abc null 1 null def 2 ghi
ID ShortDesc LongDesc
0 abc null
1 null def
2 ghi jkl
结果:
ID ShortDesc LongDesc
0 abc null
1 null def
2 ghi null
我不知道如何为此创建SQL。如果要同时显示shortDesc和longDesc:
SELECT
shortDesc,
CASE WHEN shortDesc IS NOT NULL THEN NULL ELSE longDesc END AS longDesc
FROM yourTable;
如果您只想显示单个描述:
SELECT COALESCE(shortDesc, longDesc) AS desc
FROM yourTable;