sql >> Databáze >  >> RDS >> Oracle

Udržujte pořadí od klauzule „IN“.

Bez použití klauzule ORDER BY ..

nebude spolehlivé objednávání
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

Dotaz byste mohli rozdělit na 5 sjednocených dotazů dohromady, ačkoli ...

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

Důvěřoval bych více předchozí metodě a pravděpodobně by fungovala mnohem lépe.



  1. Po přetažení uložte novou pozici položek RecyclerView v SQLite

  2. Úvod do speciálních dotazů

  3. ORA-01438:hodnota větší než specifikovaná přesnost povolená pro tento sloupec při vkládání 3

  4. Přidání databázového poštovního účtu do profilu (T-SQL)