我做了选择查询,其中我想根据条件选择数据。为此,我声明了一个变量并在else部分中设置该变量的值。我想使用该变量进一步选择相同的其他部分我怎么能实现这一点?请帮助
declare @stateid int
select CASE WHEN MstCustomerAddressInfo.StateId is null
THEN 24
ELSE set @stateid = MstCustomerAddressInfo.StateId
select mststate.statecode from mststate where MstState.StateId = @stateid
END AS StateCode
答案 0 :(得分:2)
不,你不能在SET
表达式中包含CASE
。即使你不能有多个陈述。
您可以编写如下相同的查询。
declare @stateid int
select CASE
WHEN MstCustomerAddressInfo.StateId is null THEN 24
ELSE
-- set @stateid = MstCustomerAddressInfo.StateId
(select mststate.statecode
from mststate
where MstState.StateId = MstCustomerAddressInfo.StateId)
END AS StateCode
from [Your_Table]