如何按第 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
我有一组列,我想按一组 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