【发布时间】:2021-06-29 15:48:30
【问题描述】:
我目前有一个 SQL Server 数据库表,其中包含真或假值作为 BIT 值(即 1 或 0)来表示订单是否免费。
我想使用 SSRS 参数 @FOC 来影响数据集的 SELECT 查询,这样当所选参数为“真”时,我想包含 0 或 1 的行,但当参数为“假”时' 我只想要值为 '0' 的记录。
我尝试了以下方法,但失败并出现类型转换错误(从 varchar 到 bit 或 varchar 到 int)。
SELECT
sl."ref", sl."status", sl."foc"
FROM
sl
WHERE
sl."status" > 10 AND
sl."foc" IN (CASE WHEN @FOC = 'True' THEN '0,1' ELSE '0' END)
ORDER BY sl."dt_created" ASC
我知道问题出在 WHERE 块中的 CASE 语句中,但我缺少什么技巧?
【问题讨论】:
-
仅供参考
case是一个表达式而不是一个语句
标签: sql-server reporting-services reportbuilder3.0