如何按第 1 列等于 SQL 中的第 2 列排序

How to order by column 1 equal column 2 in SQL

我有一组列,我想按一组 2 行对其进行排序。例如:

col1  col2

1     4
2     5
3     6
4     1
5     2
6     3

期望的输出:

col1  col2

1     4
4     1
2     5
5     2
3     6
6     3

如有任何帮助,我们将不胜感激。

我认为你的 SQL 句子必须包含下一个 ORDER BY 子句:

ORDER BY col1 + col 2 ASC, col1 ASC 

会起作用

您必须先按最小的列排序,然后按最大的列排序:

ORDER BY CASE WHEN col1 < col2 THEN col1 ELSE col2 END,
         CASE WHEN col1 < col2 THEN col2 ELSE col1 END

大多数数据库都支持 MySql 的 LEAST()GREATEST() 等函数,它们简化了代码:

ORDER BY LEAST(col1, col2),
         GREATEST(col1, col2)

如果您想要 select 来自 table 的记录,但希望看到它们根据两列排序,您可以使用 ORDER BY 来实现。该子句出现在您的 SQL 查询的末尾。

Sort by multiple column : ORDER BY column1 DESC, column2
SELECT * FROM table_name ORDER BY col1 ASC;             -- ASCending is default
SELECT * FROM table_name ORDER BY col1 DESC;            -- DESCending
SELECT * FROM table_name ORDER BY col1 DESC, col2;      -- col1 DESC then col2 ASC