Tsql 仅选择不为null的列,或者如果两个列都不为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

在下表中,我有一个名为ShortDesc的列和一个名为LongDesc的列。如果ShortDesc不是null,我想返回这个值。如果行中的ShortDesc列为null,我想返回LongDesc的值。如果ShortDesc和LongDesc都不为null,我只想返回ShortDesc(LongDesc需要作为null返回)

表事件

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;