sql >> Databasteknik >  >> RDS >> Oracle

Håll ordning från 'IN'-klausulen

Det blir ingen tillförlitlig beställning om du inte använder en ORDER BY-klausul ..

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

Du kan dela upp frågan i 5 frågor som union alla tillsammans men ...

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

Jag skulle lita mer på den förra metoden, och den skulle förmodligen fungera mycket bättre.



  1. Det är dags att vi ger Microsoft Access IDE lite kärlek

  2. Escape SQL LIKE-värde för Postgres med psycopg2

  3. Långsam bulkinsats för bord med många index

  4. Hantering av samtidiga uppdateringar i viloläge