[英]Same column as twice in SQL server SELECT query with Group BY, ORDER BY clauses
[英]How to select the same column twice with different order
這是我的問題。 我需要在同一個選擇中以不同的方式訂購相同的列。 首先是asc,然后是desc。
例:
表格1
+--------+-----+
| Name | Age |
+--------+-----+
| Coa | 20 |
| Bami | 12 |
| Alice | 50 |
+--------+-----+
結果應該是:
+------+-----+
| Age | Age |
+------+-----+
| 12 | 50 |
| 20 | 20 |
| 50 | 12 |
+------+-----+
我希望同一列首先訂購Ascendant,然后是Descendant。
我在嘗試
詢問
Select t1.age, t2.age
from table1 t1
inner join table1 t2
on t1.name=t2.name
order by t1.age asc, t2.age desc
但在結果中,兩列都以相同的方式排序。
誰知道如何解決這個問題?
這是一個非常奇怪的要求。 您可以使用row_number()
和連接執行此操作:
select t1a.age, t1b.age
from (select t1.*, row_number() over (order by age asc) as seqnum
from table1 t1
) t1a join
(select t1.*, row_number() over (order by age desc) as seqnum
from t1
) t1b
on t1a.seqnum = t1b.seqnum
order by t1a.age;
WITH CTE AS
(
SELECT NAME,
AGE,
ROW_NUMBER() OVER(ORDER BY AGE ASC) AS AC,
ROW_NUMBER() OVER(ORDER BY AGE DESC) AS DC
FROM YOURTABLE
)
SELECT C1.AGE,C2.AGE
FROM CTE C1
INNER JOIN CTE C2 ON C1.AC=C2.DC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.