1
我需要這樣的查詢:排序方式表達從選擇
SELECT (t.a-t.b) AS 'difference'
FROM t
ORDER BY abs(t.a-t.b)
有沒有辦法不重複的代碼(T.A-t.b)?謝謝您的回答
我需要這樣的查詢:排序方式表達從選擇
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")
如果您想要閱讀更多關於它的信息,這是一個非常類似的帖子。 http://stackoverflow.com/questions/11182339/reference-alias-calculated-in-select-in-where-clause –
請參閱我的評論#1的答案:它說:「無效的列名:差」 – awfun
Works的我,但嘗試用'a'填充列,所以'abs(a.difference)'。 – larsenmc