sql >> データベース >  >> RDS >> Oracle

同じ列を昇順と降順の両方で並べ替える方法

    row_number() でこれを行うことができます 自己参加:

    select e1.empid as empid_1, e2.empid as empid_2
    from (select e.*, row_number() over (order by emp_id) as seqnum
          from emp e
         ) e1 join
         (select e.*, row_number() over (order by emp_id desc) as seqnum
          from emp e
         ) e2
         on e1.seqnum = e2.seqnum;
    

    編集:

    rownum でこれを行うこともできます ただし、追加の select が必要です :

    select e1.empid as empid_1, e2.empid as empid_2
    from (select e.*, rownum as seqnum
          from (select e.* from emp e order by empid asc) e
         ) e1 join
         (select e.*, rownum as seqnum
          from (select e.* from emp e order by empid desc) e
         ) e2
         on e1.seqnum = e2.seqnum;
    


    1. MySQLエラー10061

    2. Pythonmysql.connectorを使用してMySQLにリモート接続します

    3. 特定のテーブルまたはビューとの関係を持つすべてのテーブルのリスト

    4. preg_replace()が終了区切り文字を見つけられませんか?