gpt4 book ai didi

sql - 在同一字段上选择升序和降序

转载 作者:行者123 更新时间:2023-12-04 11:39:30 25 4
gpt4 key购买 nike

___________________
| field1 | field1 |
|________|________|
| A | E |
| B | D |
| C | C |
| D | B |
| E | A |
|________|________|

如果可能的话,我会像使用相同字段的同一个表一样进行 sql 选择吗?
select t1.c, t2.c from
(
WITH cte AS
(
SELECT
c,
ROW_NUMBER() OVER(ORDER BY c DESC) AS n,
ROW_NUMBER() OVER(ORDER BY c ASC) AS m
FROM @t
)
SELECT t1.c, t2.c
FROM cte t1
JOIN cte t2 ON t2.n = t1.m
)

我可以做这样的事情吗?

最佳答案

DECLARE @t TABLE ( c CHAR(1) )

INSERT INTO @t
VALUES ('a'),('b'),('c'),('d'),('e')

;WITH cte AS
(
SELECT
c,
ROW_NUMBER() OVER(ORDER BY c DESC) AS n,
ROW_NUMBER() OVER(ORDER BY c ASC) AS m
FROM @t
)

SELECT t1.c, t2.c
FROM cte t1
JOIN cte t2 ON t2.n = t1.m

编辑(评论):

如果您不想使用 CTE那么你会把它写成
SELECT t1.c, t2.c 
FROM (
SELECT c
, ROW_NUMBER() OVER(ORDER BY c ASC) AS m
FROM @t
) t1
JOIN (
SELECT c
, ROW_NUMBER() OVER(ORDER BY c DESC) AS n
FROM @t
) t2 ON t2.n = t1.m

SQLFiddle Demo

关于sql - 在同一字段上选择升序和降序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17717575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com