繁体   English   中英

SQL选择where列子句

[英]SQL select where column clause

我有一张桌子,如下

date1   |  date2  | datechoice

1-5-17    2-6-17      date2

Datechoice可以是date1或date2。 我想首先查看datechoice列,以确定在where语句中使用哪一列。

伪代码示例:

CASE WHEN datechoice ='date2' 
     THEN where date2 >= 2-2-17 AND where date2 <= 2-9-17 
     ELSE where date1 >= 2-2-17 AND where date1 <= 2-9-17

我怎样才能做到这一点?

WHERE (datechoice ='date1' and date1 >= '2017-02-02' AND date1 <= '2017-02-09')
   OR (datechoice ='date2' and date2 >= '2017-02-02' AND date2 <= '2017-02-09') 

这可能怀疑用于索引。 我看不到如何使用索引,因为我们一直在考虑两个日期。 或方法或两个查询以及联合实际上可能会更有效。

WHERE case when datechoice = 'date1' then date1 
            when datechoice = 'date2' then date2 end 
            between '2017-02-02' and '2017-02-09'

在两次使用之间要小心,我假设date1和date2实际上是没有时间成分的日期字段(如果存在时间),那么您的上边界可能缺少记录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM