select语句列中的条件null不为空 - SQL Server

时间:2013-07-30 21:34:36

标签: sql sql-server-2008 select multiple-columns conditional-statements

请看一下,让我知道可能的解决方案?

表格中显示的数据:

select a,b,d,e from table xyz.
  • 当c为null时显示带值
  • 的d

  • 当c不为空时显示带值
  • 的e

所需数据:

数据看起来像这样

a b  c          d e 
1 2  null         2
1 2  not null   2  

根据以上数据,如果c为null,则显示d = b else e = b。

如何为上述条件编写正确的SQL查询,因为我试过它无效。

提前致谢。

2 个答案:

答案 0 :(得分:1)

SELECT CASE WHEN c IS NULL THEN d ELSE e END

答案 1 :(得分:1)

SELECT CASE WHEN c IS NULL THEN d ELSE e END

关于显示的位d = b否则e = b让我相信您可能也在尝试比较 NULL NOT NULL 值。

了解SQL NULL 意味着“未知”非常重要,因此无法在已知值和未知值之间进行比较。

在这种情况下,我建议使用Coalesce将NULL更改为可比较的值,而不会影响逻辑。

Coalesce(d, 0) = b