oracle <>
来源:互联网 发布:淘宝账号注销不了 编辑:程序博客网 时间:2024/06/03 03:31
场景:数据库中两个表 表1 表2
1 . 其中表2是表1的一个附属表;
2 . 两个表中各有一个生成时间,表1中时间不变,表2中修改用户信息时会变;
3 . 查询sysdate-表1中时间>30且sysdate-表2中时间>30的用户会员号;
语句1:
SELECT A.会员号
FROM
(SELECT t.*FROM 表1 twhere SYSDATE - TO_DATE(表1.时间,'yyyyMMddHH24MISS') >30) A,
(SELECT t2.会员号 表1 t2,表2 t1 WHERE 表1.会员号=表2.会员号AND SYSDATE -表1.时间>30 AND SYSDATE -表2.时间<30) C
WHERE
A.会员号 <> C.会员号;
若A中语句过滤出了10条数据,C中过滤出2条数据,不看结果,分析应该是得到8条结果;
实际上得到18条数据,DISTINCT 后发现是10条数据,分析是临时表A与临时表C做过滤时对比了两遍,一次少一条<>的数据,查询得到的结果为A的数据条数X C的数据条数-C的数据条数;
修正后语句:
SELECT A.会员号
FROM
(SELECT t.*FROM 表1 twhere SYSDATE - TO_DATE(表1.时间,'yyyyMMddHH24MISS') >30) A
WHERE A.会员号NOT IN
(SELECT t2.会员号 表1 t2,表2 t1 WHERE 表1.会员号=表2.会员号AND SYSDATE -表1.时间>30 AND SYSDATE -表2.时间<30);
由上得出<>号只适用于单个数据;
注:<> 与 NOT IN 会过滤null;
希望对你有帮助,祝你有一个好心情,加油!
若有错误、不全、可优化的点,欢迎纠正与补充!
- Oracle???
- oracle
- oracle
- oracle
- oracle
- oracle...
- oracle
- oracle
- ORACLE
- Oracle
- ORACLE
- Oracle
- Oracle
- oracle
- oracle
- oracle
- ORACLE
- oracle
- 15.3.2 FileWriter
- 抽象类与接口
- java学习第40天,队列 栈
- python正则表达式(1)
- 期望dp小结
- oracle <>
- 程序循环
- Requests: 让 HTTP 服务人类
- [2017纪中10-30]Graph 最小生成树
- xml(2)
- MySQL周测题
- 页面布局 --- 格子布局
- Hive学习总结
- LightOJ1128 Greatest Parent