gpt4 book ai didi

sql - 'IN'可以用在case语句中吗?

转载 作者:行者123 更新时间:2023-12-04 21:33:31 24 4
gpt4 key购买 nike

我不知道如何表达我的问题,但我会尽力而为。

我正在尝试为 SSRS 中的报告完成类似的事情。

SELECT COLUMN1, COLUMN2, COLUMN3
FROM TABLE
WHERE COLUMN1 =
CASE
WHEN @VAR1 IS NOT NULL THEN @VAR1
WHEN @VAR1 IS NULL THEN IN (SELECT COLUMN1 FROM TABLE2)
END

如何重写我的 case 语句以允许这种类型的逻辑?我应该用不同的方式来写它吗?

我知道这个问题可以被解释为一个开放式问题,但我会在测试后立即将答案标记为已回答并且它对我有用。

提前致谢。

编辑

Table2 中的 Column1 在 Column 中有 NULL。我知道“IN”不会产生 NULL。我需要从子查询中提取该列中的所有内容。

最佳答案

不,您不能随意使用 IN。你只需要重新设计你的两种可能性。

SELECT COLUMN1, COLUMN2, COLUMN3
FROM TABLE
WHERE (@VAR1 IS NOT NULL AND COLUMN1 = @VAR1) OR
(@VAR1 IS NULL AND COLUMN1 IN (SELECT COLUMN1 FROM TABLE2) )

对于 NULL:

要匹配NULLS,可以试试:

SELECT COLUMN1, COLUMN2, COLUMN3
FROM TABLE
WHERE (@VAR1 IS NOT NULL AND COLUMN1 = @VAR1) OR
(@VAR1 IS NULL AND
(COLUMN1 IN (SELECT COLUMN1 FROM TABLE2)
OR COLUMN1 IS NULL) ) )

关于sql - 'IN'可以用在case语句中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32148269/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com