【问题标题】:Conditional null not null in a select statement column - SQL Server选择语句列中的条件 null 不为 null - SQL Server
【发布时间】:2013-07-31 05:44:44
【问题描述】:

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

表格中要显示的数据:

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为null,则显示d = b else e = b。

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

提前致谢。

【问题讨论】:

  • 你想再试一次。客户这样的规格是可以原谅的......

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


【解决方案1】:
SELECT CASE WHEN c IS NULL THEN d ELSE e END

【讨论】:

  • 您缺少关键字。这里正确的语法是:SELECT CASE WHEN c IS NULL THEN d ELSE e END
  • @Bridge 谢谢,已修复。
【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-17
    • 2023-03-16
    • 2015-11-22
    • 1970-01-01
    相关资源
    最近更新 更多