使用 Case 语句字段填充参数

Posted

技术标签:

【中文标题】使用 Case 语句字段填充参数【英文标题】:Using a Case statement field to populate a parameter 【发布时间】:2020-05-19 13:18:21 【问题描述】:

请见谅,但我对此很陌生:我使用 case 语句为字段赋予附加值,例如

CASE Field A > 60 THEN '>60' END AS 'NEW_FIELD'

在 WHERE 子句之后,我想使用这个新字段作为参数,所以 AND NEW_FIELD AS (@PARAMETER),但报表生成器说它不能使用列名作为参数,尽管我已经看到它在不同的参数中使用并且工作正常。有什么建议吗?

【问题讨论】:

所以更新到我原来的问题,如果我将这个新字段分配给一个参数和@PARAMETER 中的“新字段”,当我运行报告时不会显示任何值。我假设因为它们在原始表中没有“新字段”,所以报表生成器找不到匹配项并且没有生成记录? 【参考方案1】:
 CASE WHEN Field A > 60 THEN '>60' END =@PARAMETER

你可以在你的WHERE 子句中试试这个

【讨论】:

谢谢,但仍然得到无效的列名。我也尝试过使用和不使用表格缩写,但没有运气。 你能把你试过的和你需要的发给你吗? - @white_homme【参考方案2】:

已修复。我试图将一个新的 CASE 字段作为参数传递。这产生了一个错误,说明列名无效。为了解决这个问题,我在我的报告生成器表中使用了这个 CASE 字段作为一个字段,但是为了作为参数传递,我基本上在我的 WHERE 子句中使用了 CASE,就像上面提到的 Thiyagu 一样,但必须将语法修改为 - END IN ( @范围)。谢谢!

【讨论】:

您可以自行接受答案,以便清楚哪个答案是正确的。

以上是关于使用 Case 语句字段填充参数的主要内容,如果未能解决你的问题,请参考以下文章

求SQL语句,删除字段中的首尾指定字符

SQL语句case怎么判断这个字段为空

SQL语句case怎么判断这个字段为空

在case语句中使用select语句中的参数[重复]

我可以在case语句中使用列名作为参数吗

在 for 循环中使用 case 语句选择变量