2

请看看这个,让我知道可能的解决方案?

表中要显示的数据:

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

或者

  • 当 c 不为 null 时显示 e 的值

所需资料:

数据看起来像这样

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

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

如何为上述条件编写适当的 SQL 查询,因为我尝试过它不起作用的情况。

提前致谢。

4

2 回答 2

2
SELECT CASE WHEN c IS NULL THEN d ELSE e END

关于 display d = b else e = b 的部分让我相信你可能也在尝试比较NULLNOT NULL值。

重要的是要了解 SQL NULL表示“未知”,因此无法在已知值和未知值之间进行比较。

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

Coalesce(d, 0) = b
于 2013-07-30T21:49:54.820 回答
1
SELECT CASE WHEN c IS NULL THEN d ELSE e END
于 2013-07-30T21:36:52.287 回答