我不知道如何表达我的问题,但我会尽力。
我正在尝试在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中有NULL值。 我知道'IN'不会产生NULL。 我需要从子查询中提取该列中的所有内容。
@var1
包含什么内容?这是一个逗号分隔列表的字符串吗?还是单个值? - Martin SmithWHEN @VAR1 IN (SELECT COLUMN1 FROM TABLE2) THEN COLUMN1
。但是,当COLUMN1
为空时,这种方法会出现问题。 - shawnt00