sql语句 根据条件的不同让where后的赛选条件动态改变

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql语句 根据条件的不同让where后的赛选条件动态改变相关的知识,希望对你有一定的参考价值。

例如,我查询我的表tableName(id,name,addTime,……)中的信息时根据addTime的值和指定的时间段进行比对,如果小于指定的时间段时where后面的条件执行指定的赛选条件,如果大于指定的时间段时where条件后执行另外的赛选条件。不知要怎样实现?

参考技术A 用 union 做
select * from 表 where addtime < 执行时间 and 第一个筛选条件
union
select * from 表 where addtime > 执行时间 and 第二个筛选条件本回答被提问者采纳
参考技术B

这样行吗?

select * from tableName where addTime<指定时间段 and 指定的赛选条件
union
select * from tableName where addTime>=指定时间段 and 另外的赛选条件

参考技术C 感觉用存储过程或者直接在业务层处理比较好,楼上的说法有错误,为什么写sql语句必须写存储过程啊..... 参考技术D 这种业务性的判读为什么要放在sql语句这里弄呢,用代码去判读不是更好些。用sql语句的话得写存储过程,我想这么简单的东西应该不需要用到存储过程吧

sqlor后面条件生效了,前面的where没用了

参考技术A SQl语句中的多个条件组合是有顺序的,where语句会对结果进行筛选,其他条件也要根据where的结果进行筛选,因此where语句后面的其他条件都是以where的结果作为基准进行筛选的,所以前面的where语句还是有用的。

以上是关于sql语句 根据条件的不同让where后的赛选条件动态改变的主要内容,如果未能解决你的问题,请参考以下文章

SQL语句中连接on条件和where条件的执行顺序

SQL 查询条件放在LEFT OUTER JOIN 的ON语句后与放在WHERE中的区别

经常看到SQL语句中的where 1=1是啥意思?

oracle SQL查询中,如何在where中用条件语句,判断不同情况,追加不同的And条件?

sql条件判断语句

SQL语句where多条件查询怎么写