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

Zjistěte, zda existuje alespoň jeden řádek s danou podmínkou

Obvykle byste to vyjádřili jako buď

SELECT COUNT(*)
  FROM employee
 WHERE name like 'kaushik%'
   AND rownum = 1

kde rownum = 1 predikát umožňuje Oracle zastavit hledání, jakmile najde první odpovídající řádek nebo

SELECT 1
  FROM dual
 WHERE EXISTS( SELECT 1
                 FROM employee
                WHERE name like 'kaushik%' )

kde EXISTS klauzule umožňuje společnosti Oracle přestat hledat, jakmile najde první odpovídající řádek.

První přístup je o něco kompaktnější, ale podle mého názoru je druhý přístup o něco jasnější, protože se opravdu snažíte zjistit, zda konkrétní řádek existuje, spíše než se snažit něco spočítat. Ale první přístup je také docela snadno pochopitelný.



  1. MySQL:Zkrátit tabulku vs Smazat z tabulky

  2. Nejlepší přístupy pro seskupený medián

  3. Parametrizovaný dotaz Pythonu MySQL je v konfliktu se zástupným znakem % v příkazu LIKE

  4. mysql group tím, že má min