从 Select 按表达式排序
Ordering by expression from Select
我需要这样查询:
SELECT (t.a-t.b) AS 'difference'
FROM t
ORDER BY abs(t.a-t.b)
有没有办法不重复代码(t.a-t.b)?谢谢你的回答
您可以包装 SQL 语句,然后执行 ORDER BY(如果要对其执行绝对值)。
SELECT * FROM
(
SELECT (t.a-t.b) AS "difference"
FROM t
) a
ORDER BY abs(a.difference)
更新:我第一次使用 SQL 服务器,但根据您的环境(Oracle,MySQL),您可能需要在列别名周围包含双引号,因此:
SELECT * FROM
(
SELECT (t.a-t.b) AS "difference"
FROM t
) a
ORDER BY abs("a.difference")
我需要这样查询:
SELECT (t.a-t.b) AS 'difference'
FROM t
ORDER BY abs(t.a-t.b)
有没有办法不重复代码(t.a-t.b)?谢谢你的回答
您可以包装 SQL 语句,然后执行 ORDER BY(如果要对其执行绝对值)。
SELECT * FROM
(
SELECT (t.a-t.b) AS "difference"
FROM t
) a
ORDER BY abs(a.difference)
更新:我第一次使用 SQL 服务器,但根据您的环境(Oracle,MySQL),您可能需要在列别名周围包含双引号,因此:
SELECT * FROM
(
SELECT (t.a-t.b) AS "difference"
FROM t
) a
ORDER BY abs("a.difference")