0

次のようなSQLクエリがあります。

SELECT

.....
price

..... AS distance

ORDER BY case
  ...

私の質問は、計算された距離を並べ替え要素として使用するにはどうすればよいですか?

4

2 に答える 2

1

質問のクエリに含まれる「距離」と、大文字と小文字を区別する理由がわかりません。

一般に、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
于 2013-08-15T10:24:50.623 に答える
0

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
于 2013-08-15T10:02:32.143 に答える