【发布时间】:2018-03-05 11:56:42
【问题描述】:
SELCT * FROM @Locations Loc
INNER JOIN SubProposal SP ON SP.MasterProposalId = Loc.ProposalId
WHERE SP.EndEffectiveDate = @EndEffectiveDate
AND ISNULL(SP.Data.value('(/*/IsRemovedByEndorsement)[1]', 'bit'), 0) = 0
CASE WHEN (@AS22_RightOfPledgeNum <> '') THEN
AND (SP.Data.value('(/*/Answers/AnswersList/Entry[@key="as22_RightOfPledgeNum"]/value)[1]', 'nvarchar(max)')= @AS22_RightOfPledgeNum) ELSE 1
END
它在 case 条件“CASE 附近的语法不正确”附近抛出错误
我需要如何检查上面的条件我需要包含这个语句只有当
CASE WHEN (@AS22_RightOfPledgeNum <> '') THEN
AND (SP.Data.value('(/*/Answers/AnswersList/Entry[@key="as22_RightOfPledgeNum"]/value)[1]', 'nvarchar(max)')= @AS22_RightOfPledgeNum) ELSE 1
END
【问题讨论】:
-
你真的需要
CASE来实现你想要的吗?语法看起来也错误 - CASE 应该是表达式的一部分,但在你的情况下它不是。你通常会这样做:WHERE something = CASE WHEN.... -
如果不是 case 我可以用什么来检查任何代码 sn-p 的条件?
-
提示:动态 SQL
标签: sql-server sql-server-2008 case where-clause