是否存在允许您将WHERE子句中的同一条件下的多个列进行比较的简写形式?
SELECT *
FROM [Table]
WHERE [Date1] BETWEEN x AND y
OR [Date2] BETWEEN x AND y
OR [Date3] BETWEEN x and y
OR [Date4] BETWEEN x and y
复制并粘贴此条件并将[Date x]替换为每一列并不是世界末日,但这肯定不是很有趣。
答案 0 :(得分:2)
您还可以这样编写查询(在SQL Server 2008或更高版本中):
Date1=x OR Date2=x OR Date3=x OR Date4=x
但是,我认为这样做没有任何好处(就性能或可读性而言)。
当然,如果您需要写x IN (Date1, Date2, Date3, Date4)
,情况会有所不同,因为在这种情况下,您只需写{{1}}即可。
答案 1 :(得分:1)
您可以使用<div>
和cross apply
,但是结果比现在的代码还要麻烦:
values
话虽如此,我同意Sean Lange的评论-似乎表结构设计不当,所有这些日期值都应该放在不同的表中,该表以一对多关系引用了该表。< / p>