两个字段同时排序获取顺序不同的数据

songberxiang 2017-09-18 11:40:08
有两个字段A,B,A是订单时间,B是加工时间,加工时间必须严格按照订单时间顺序,如果出现按照A的顺序排序和按照B的顺序排序出现不一致的情况,那么就是问题加工。请问如何通过一句SQL实现两个字段同时比较。
SELECT ID FROM TB ORDER BY A;
SELECT ID FROM TB ORDER BY B;
两个获取的数据顺序应该一致。如果不一致就把这些信息搜索出来
...全文
1238 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
卖水果的net 2017-09-18
  • 打赏
  • 举报
回复

SQL> 
SQL> create table test(a date, b date);
Table created
SQL> begin
  2      insert into test values(date'2017-01-01', date'2017-01-01');
  3      insert into test values(date'2017-01-02', date'2017-01-03');
  4      insert into test values(date'2017-01-03', date'2017-01-02');
  5      insert into test values(date'2017-01-04', date'2017-01-05');
  6      insert into test values(date'2017-01-05', date'2017-01-07');
  7  end;
  8  /
PL/SQL procedure successfully completed
SQL> with m as (
  2      select a, b,
  3          row_number() over(order by a) a1,
  4          row_number() over(order by b) b1
  5      from test
  6  )
  7  select * from m where a1 != b1;
A           B                   A1         B1
----------- ----------- ---------- ----------
2017-01-03  2017-01-02           3          2
2017-01-02  2017-01-03           2          3
SQL> drop table test purge;
Table dropped

SQL> 
songberxiang 2017-09-18
  • 打赏
  • 举报
回复
引用 1 楼 wmxcn2000 的回复:
用 row_number 这个分析函数,分别计算这两列,再比较这两值,不一样的,就是有问题的。
感谢你的回复,我通常使用row_number主要用来分页,使用并不多,请问能详细给点思路吗?听了你的意见,依然还是一头雾水
卖水果的net 2017-09-18
  • 打赏
  • 举报
回复
用 row_number 这个分析函数,分别计算这两列,再比较这两值,不一样的,就是有问题的。

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧