【发布时间】:2018-03-21 15:04:06
【问题描述】:
编辑:
我正在运行以下查询
DECLARE @value0 INT;
DECLARE @filter = 'values.country = ''Germany''';
EXEC('SELECT
'+@value0+' = SUM(CASE WHEN valuecolumn >= 0
AND valuecolumn < 31 THEN POWER(2, valuecolumn - 0) ELSE 0 END) ,
'+@value1+' = SUM(CASE WHEN valuecolumn >= 32 AND valuecolumn < 63 THEN
POWER(2, valuecolumn - 32) ELSE 0 END)
FROM dbo.values
where '+@filter+'');
当我执行这个查询时,我收到了这个错误:
消息 102,级别 15,状态 1,第 1 行 '=' 附近的语法不正确。
过滤器是我需要使用的动态变量,这就是我使用执行功能的原因。 如何使用执行函数填充声明的变量?
【问题讨论】:
-
你为什么首先使用动态 SQL?
-
@Zohar Peled 我编辑了我的问题作为对您问题的回答
-
我已经编辑了我的答案...
标签: sql sql-server tsql exec execution