我必须创建一个查询来检查几个不同的列,如果其中任何一列有1个,我想返回真实。Sql Server 2000:根据25列中的任何一列为“真”返回“true”或“false”
理想输出将是沿着线:
ID:55
名称:李四
IsDealerType1:真
IsDealerType2:真
IsDealerType3:假
IsDealerType4:假
IsDealerType5:真
问题是,而不是那些5个经销商列,我有大约20列名为1a,1b,1c,1d等。如果有“1”列的值为true,那么IsDealerType1应该为true。
我试图避免在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
...但很明显,我不这样做是正确的。
任何帮助表示赞赏。谢谢!
油滑。不是我的第一个想法,但我最近发现了这种使用IN。 – 2009-10-23 20:57:44
非常好。为了可能搜索的其他人的利益,此技术也适用于位列上的WHERE子句,但“|”和“OR”不起作用。例如。 (1a,1b,1c,1d)中的1处' – rayzinnz 2016-03-23 01:44:26