gpt4 book ai didi

mysql - 需要帮助在一个 Select 语句中对两列进行排序

转载 作者:行者123 更新时间:2023-11-30 21:32:39 26 4
gpt4 key购买 nike

我知道我可以使用 ORDER BY 对一列数据进行排序,但我想使用 ORDER BY 对两列数据进行排序并将结果显示在一个 TableView 中.

我试过使用逗号分隔的列表,但这并没有按照我想要的方式排序。我希望它独立于必须位于特定位置的行对两列进行排序。

SELECT * FROM top_5_films ORDER BY position DESC;

我希望对两列数据进行排序,而不是将字段绑定(bind)到行。

最佳答案

正如@forpas 所评论的,您似乎正在寻找不相关数据的记录;这在 SQL 中是一个很奇怪的要求...

假设您的 RDBMS 支持窗口函数 ROW_NUMBER(),您可以按如下方式进行:

  • 对于两列中的每一列,创建一个子查询来选择列并为每条记录分配一个行号,按列本身排序
  • 然后 JOIN 对它们的行号进行两个子查询
  • 最后,按行号排序

考虑:

SELECT c1.col1, c2.col2
FROM
(
SELECT col1, ROW_NUMBER() OVER(ORDER BY col1) rn FROM top_5_films
) c1
INNER JOIN (
SELECT col2, ROW_NUMBER() OVER(ORDER BY col2) rn FROM top_5_films
) c2 ON c1.rn = c2.rn
ORDER BY c1.rn

Demo on DB Fiddle :

示例数据:

| col1 | col2 |
| ---- | ---- |
| ghi | RST |
| abc | UVW |
| lmn | OPQ |

结果:

| col1 | col2 |
| ---- | ---- |
| abc | OPQ |
| ghi | RST |
| lmn | UVW |

关于mysql - 需要帮助在一个 Select 语句中对两列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55435901/

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