请看一下这个并让我知道可能的解决方案?
表格中显示的数据:
select a,b,d,e from table xyz.
- 当 c 为 null 时显示 d 的值
或
- 当 c 不为 null 时显示 e 的值
所需数据:
数据看起来像这样
a b c d e
1 2 null 2
1 2 not null 2
根据以上数据,如果c为空,则显示d = b,否则显示e = b。
如何为上述条件编写正确的 SQL 查询,正如我尝试的情况,它不起作用。
提前致谢。
最佳答案
SELECT CASE WHEN c IS NULL THEN d ELSE e END
关于显示 d = b else e = b 的部分让我相信您可能也在尝试比较 NULL 和 NOT NULL 值。
重要的是要了解 SQL NULL 表示“未知”,因此无法在已知值和未知值之间进行比较。
在这种情况下,我建议使用 Coalesce将 NULL 值更改为不会影响您的逻辑的类似值。
Coalesce(d, 0) = b
关于sql - select 语句列中的条件 null 不为 null - SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17957858/