【发布时间】:2013-05-06 23:48:59
【问题描述】:
我在 where 子句中写了一个 case 条件,它在没有任何子查询的情况下工作正常,但它不适用于子查询
例如
declare @isadmin varchar(5) = 'M'
select * from Aging_calc_all a where a.AccountNumber in
(case @isadmin when 'M' then 1 else 0 end)
工作正常。
但是这似乎不起作用 -
select * from Aging_calc_all a where a.AccountNumber in
(case @isadmin when 'M' then (select AccountNumber from ACE_AccsLevelMaster where AssignedUser=7) else 0 end)
任何建议或这是 2008 年的 t-sql 错误。
【问题讨论】:
-
这可能会返回多个值
select AccountNumber from ACE_AccsLevelMaster where AssignedUser=7,试试select COUNT(AccountNumber) from ACE_AccsLevelMaster where AssignedUser=7
标签: sql sql-server tsql