次のようなSQLクエリがあります。
SELECT
.....
price
..... AS distance
ORDER BY case
...
私の質問は、計算された距離を並べ替え要素として使用するにはどうすればよいですか?
次のようなSQLクエリがあります。
SELECT
.....
price
..... AS distance
ORDER BY case
...
私の質問は、計算された距離を並べ替え要素として使用するにはどうすればよいですか?
質問のクエリに含まれる「距離」と、大文字と小文字を区別する理由がわかりません。
一般に、ORDER BY 句内のフィールドは、別名または select 句内の番号で指定できます。ORDER BY にもいくつかのロジックを入れることができます
select A,
B as MyB,
C - Z, -- <- Field #3: (A - #1, B - #2, C - Z - #3, D + F + G - #4 etc)
D + F + G
from MyTable
order by MyB asc, -- <- by alias
3 desc, -- <- by field's number
D + F + G asc, -- <- by some logic, here it's just copy + paste
case -- <- by some logic designed for ORDER BY only
when (A > B + C) then
1
when (A > B) then
2
else
3
end desc
句distance
で同じ定義を使用します。order by
select
...
price
<some logic here> as distance
...
order by <same logic here>
または、outer から派生した列を参照しますselect
。
select * from
(
select
...
price
... as distance
...
) x
order by x.distance