我正在尝试对2种特定状态(4和16)的位值求和。问题是,它不是对位值求和,而是将值保持在“ 1”。因此,它为每个状态返回“ True”,但是它应该对两个状态的值求和,并且仅在等于2时才返回True。
如果状态(4和16)的两个值都等于2,我想返回True
我尝试使用IIF,计数和总和进行子选择。
CASE
WHEN (status in ('4', '16') and sum(cast(bitvalue as int)) = '2') THEN
'True' ELSE 'False' end as 'test'
仅当状态中的组合值等于2时才应返回true
答案 0 :(得分:0)
尝试以下操作,通过再增加一种位值大小写,确保您具有group by语句
CASE
WHEN (status in ('4', '16') and sum(cast(bitvalue as int)) = '2') THEN
'True' ELSE 'False' end as 'YourTestColumn',
CASE
WHEN (status in ('4', '16') and sum(CASE WHEN bitvalue =1 then 1 else 0 end) = '2') THEN
True' ELSE 'False' end as 'MyTestColumn'