我需要进行这样的查询:
SELECT (t.a-t.b) AS 'difference'
FROM t
ORDER BY abs(t.a-t.b)
有没有办法不重复代码(t.a-t.b)?谢谢你的回答
答案 0 :(得分:2)
如果要对其执行绝对值,则可以包装SQL语句,然后执行ORDER BY。
SELECT * FROM
(
SELECT (t.a-t.b) AS "difference"
FROM t
) a
ORDER BY abs(a.difference)
更新:我第一次使用SQL Server,但根据你的环境(Oracle,MySQL),你可能需要在列别名周围加上双引号,所以:
SELECT * FROM
(
SELECT (t.a-t.b) AS "difference"
FROM t
) a
ORDER BY abs("a.difference")