2013-11-27 31 views
0

在下表中,我有一个名为ShortDesc的列和一个名为LongDesc的列。如果ShortDesc不为空,我想返回这个值。如果一行中的ShortDesc列为空,我想返回LongDesc的值。如果ShortDesc和LongDesc都不为空,我只想返回ShortDesc(LongDesc需要返回为空)。只选择非空列或一个特定列(如果两者不为空)

表活动

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。

回答

2

如果你想同时显示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;