Bry*_*yan 1 sql t-sql sql-server bit-manipulation sql-server-2000
我必须创建一个查询几个不同列的查询,如果其中任何一个有1,我想返回true.
理想的输出将是:
ID:55
名称:John Doe
IsDealerType1:True
IsDealerType2:True
IsDealerType3:False
IsDealerType4:False
IsDealerType5:True
问题是,我有大约20个名为1a,1b,1c,1d等的列,而不是那5个经销商列.如果任何"1"列为真,那么IsDealerType1应该为真.
我试图避免在VB.NET代码中写一些内容来检查每一列,只是因为在SQL中应该很容易避免这种丑陋 - 如果我知道怎么做 - 但我不知道如何构造查询.我一直在努力......
SELECT id,
name,
(1a or 1b or 1c or 1d) as IsDealerType1,
(2a or 2b or 2c or 2d) as IsDealerType2
where id = 55
Run Code Online (Sandbox Code Playgroud)
......但显然,我做得不对.
任何帮助表示赞赏.谢谢!
Joe*_*orn 10
我喜欢罗素,但我也会加上这个:
CASE WHEN 1 IN (1a,1b,1c,1d) THEN 1 ELSE 0 END As IsDealerType1
Run Code Online (Sandbox Code Playgroud)
CASE WHEN(1a + 1b + 1c + 1d)> 0 THEN 1 ELSE 0 END为IsDealerType1
归档时间: |
|
查看次数: |
1175 次 |
最近记录: |