sql >> データベース >  >> RDS >> Oracle

'IN'句から順序を維持する

    ORDER BY句を使用しない限り、信頼できる順序付けはありません。..

    SELECT SomeField,OtherField
    FROM TestResult 
    WHERE TestResult.SomeField IN (45,2,445,12,789)
    order by case TestResult.SomeField
             when 45 then 1
             when 2  then 2
             when 445 then 3
             ...
             end
    

    クエリを5つのクエリに分割して、すべてを結合することもできます...

    SELECT SomeField,OtherField
    FROM TestResult 
    WHERE TestResult.SomeField = 4
    union all
    SELECT SomeField,OtherField
    FROM TestResult 
    WHERE TestResult.SomeField = 2
    union all
    ...
    

    前者の方法をもっと信頼すれば、おそらくはるかにパフォーマンスが向上するでしょう。



    1. SQLクエリのコーディング標準について知っておくべきことすべて

    2. 列をNULLからNOTNULLに変更する方法

    3. Postgresの2つの日付の間の日曜日を除く日数を数える方法は?

    4. 式SSRSを使用して2つのデータセットを使用して計算する際に助けが必要