如何獲得以下輸出?如何獲得以下輸出?
輸入:
t1
-----------------
col1 col2
----------------
2 a
1 c
3 b
----------------
輸出:
t1
-----------------
col1 col2
----------------
1 a
2 b
3 c
----------------
如何獲得以下輸出?如何獲得以下輸出?
輸入:
t1
-----------------
col1 col2
----------------
2 a
1 c
3 b
----------------
輸出:
t1
-----------------
col1 col2
----------------
1 a
2 b
3 c
----------------
select C1.col1, C2.col2
from
(select col1, row_number() over (order by col1) rn
from t1) C1
join
(select col2, row_number() over (order by col2) rn
from t1) C2
on C1.rn=C2.rn
order by C1.rn
'a.rn'應該是't1.rn'(用'your_table',你指的是OP的't1',對嗎?可能比't1/t2'更適合使用其他表別名)。 – 2013-03-07 13:36:43
謝謝,我已經糾正。 – 2013-03-07 13:39:25
一個額外的小修正:'從t2'應該是'從t1'(OP的表) - 然後,它就像一個魅力:) – 2013-03-07 13:40:16
您可以嘗試使用行號,如:
SELECT row_number() OVER (ORDER BY a.col2) as col1, col2
FROM t1 a ORDER BY a.col2
我已經不同地理解了這個問題,因爲他要求分開重新排序。你只需重新分配ID。 :)不知道OP在詢問什麼。 – 2013-03-07 13:43:40
儘管我同意弗洛林說這個問題沒有明確說明,但我懷疑Harry的解釋很可能是正確的 - 他們只是想在表格中「重新排序」id。無論如何,另一種解釋沒有任何意義。 – 2013-03-12 07:33:59
我認爲以下查詢可能會對您有所幫助。
SELECT * FROM t1 ORDER BY col1 ;
請查看此鏈接,更多的實踐
試試這個..
select col1,col2 from
(select col1,rownum rn from(select col1 from t1 order by col1)) a,
(select col2,rownum rn from(select col2 from t1 order by col2)) b
where a.rn=b.rn
哪裏'B'輸出從何而來? – 2013-03-07 13:09:17
對不起,我改變了 – Madhav 2013-03-07 13:10:00
這可能會幫助你:[排序兩列不同順序](http://www.java2s.com/Tutorial/Oracle/0040__Query-Select/Sorttwocolumnswithdifferentordering.htm) – 2013-03-07 13:13:06