我可以使用什么 SQL 选择查询对每一行进行排序,然后对排序后的行进行排序?
例如:表格选项卡(c1、c2、c3、c4)
2,5,8,4
2,1,6,7
5,2,9,3
查询必须给出:
1,2,6,7
2,3,5,9
2,4,5,8
最佳答案
SELECT
MIN(c1, c2, c3, c4) AS new_c1,
CASE MIN(c1, c2, c3, c4) WHEN c1 THEN MIN(c2, c3, c4)
WHEN c2 THEN MIN(c1, c3, c4)
WHEN c3 THEN MIN(c1, c2, c4)
WHEN c4 THEN MIN(c1, c2, c3)
END AS new_c2,
CASE MAX(c1, c2, c3, c4) WHEN c1 THEN MAX(c2, c3, c4)
WHEN c2 THEN MAX(c1, c3, c4)
WHEN c3 THEN MAX(c1, c2, c4)
WHEN c4 THEN MAX(c1, c2, c3)
END AS new_c3,
MAX(c1, c2, c3, c4) AS new_c4
FROM tab
ORDER BY new_c1, new_c2, new_c3, new_c4
引用:
Note that max() [and min()] is a simple function when it has 2 or more arguments but operates as an aggregate function if given only a single argument.
关于SQL 对每行中的列进行排序,并据此对行进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18719310/