sql >> Database teknologi >  >> RDS >> Oracle

Hold orden fra 'IN'-klausulen

Der vil ikke være nogen pålidelig bestilling, medmindre du bruger 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 dog opdele forespørgslen i 5 forespørgsler, som alle sammen har oprettet ...

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

Jeg ville stole mere på den førstnævnte metode, og den ville nok fungere meget bedre.



  1. Sådan fungerer POSITION()-funktionen i MySQL

  2. Beregning af medianen med en dynamisk markør

  3. Sådan fungerer UTC_DATE() i MariaDB

  4. Hvad er standard begrænsningsnavnet i SQL Server?