【问题标题】:setting column to null in case statement在 case 语句中将列设置为 null
【发布时间】:2017-01-27 03:30:56
【问题描述】:

我正在尝试执行一个选择语句,如果局部位变量为 0,那么当列为空时需要有一个条件。如果不执行column1 = NULL,我无法弄清楚如何做到这一点,它不会给出正确的结果:

DECLARE @s bit = 0
SELECT pkID FROM table1 WHERE column1 = CASE WHEN @s = 0 THEN NULL ELSE column1 END

关于如何完成这项工作的任何想法?

【问题讨论】:

  • 您对NULL设置 列,但您的查询是SELECT 语句。请通过一些示例数据和期望的结果阐明您的意图。

标签: sql-server tsql case


【解决方案1】:

您可以通过将这两个条件添加到WHERE 子句来做到这一点:

Declare @s Bit = 0;
Select  pkID
From    table1
Where   (@S = 0 And Column1 Is Null)
Or      (@S <> 0)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-09
    • 2018-01-29
    • 2015-08-18
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 1970-01-01
    • 2020-02-08
    相关资源
    最近更新 更多