【发布时间】:2017-08-08 03:58:39
【问题描述】:
我有以下 sql..@FeeType 是存储过程的参数..当我调用以下逻辑时出现错误..如果我删除 and 条件并使逻辑只是
WHEN ''ItemDesc'' THEN ''Item Description1''
然后逻辑工作正常..有人可以看看,让我知道我在这里做错了什么。
SELECT @FIELDS = (COALESCE(@FIELDS, '' '','''') + ''<td style='' +
''"border:1px solid black;color:white">'' +
(CASE name
WHEN ''ItemDesc'' and '+ @FeeType +' = ''1'' THEN ''Item Description1''
WHEN ''ItemDesc'' and '+ @FeeType +' = ''2'' THEN ''Item Description2''
WHEN ''Units'' THEN ''Units''
WHEN ''Rate'' THEN ''Rate''
WHEN ''Frequency'' THEN ''Frequency''
WHEN ''Annual'' THEN ''Annual''
WHEN ''BasedOn'' THEN ''Based On'' ELSE ''Misc'' END) + ''</td>''
)
FROM tempdb.sys.Columns
WHERE object_id=object_id(''tempdb..#FeesCalculation'')
AND name not like ''CustColHTML_ID''
AND name not like ''ItemID''
谢谢
【问题讨论】:
-
为什么你在任何地方都使用了两次单引号?这是动态查询吗?
-
抱歉忘记提了..是的
-
你能发布完整的查询吗
标签: sql sql-server case dynamic-sql