SQL WHERE – zadejte podmínku pomocí SQL

WHERE klauzule slouží k definování omezujících podmínek při dotazování. Ve většině případů nás při dotazování do tabulky nezajímají všechny záznamy, ale pouze určitá jejich podmnožina na základě kritérií. Kritéria definujeme pomocí operátorů.

Pořadí v SQL skriptu

  1. SELECT
  2. FROM
  3. WHERE
  4. GROUP BY
  5. HAVING
  6. ORDER BY

Syntaxe WHERE:

SELECT [Sloupec1], [Sloupec2]
FROM Tabulka
WHERE pole <Operator>
hodnota

SQL Operátory

Operátorům se budeme věnovat v samostatné kapitole, níže uvedu seznam tzv. porovnávacích operátorů (comparsion) se kterými pracujeme, pokud chceme filtrovat data.

  • = [rovná se]
  • <> [nerovná se]
  • < [je menší než]
  • <= [je menší než nebo rovno]
  • > [je větší]
  • >= [je větší než nebo rovno]
  • BETWEEN [je mezi]
  • LIKE [jako, podobně]
  • IN [více hodnot]

Příklad

Tabulka se kterou budeme pracovat strukturu viz obrázek níže a obsahuje 18484 záznamů:

Dimcustomer-pred-WHERE-klauzuli

Vstupní data

Pomocí klauzule vyfiltrujeme zákazníky, kteří mají datum narození [BirthDate] mezi 1.1.1920 a 31.12.1921 včetně. Máme 2 možnosti, výsledky budou stejné:

První možností je použití operátoru BETWEEN (krajní datumy se do podmínky počítají)

--Možnost 1
SELECT [CustomerKey]
,[FirstName]
,[LastName]
,[BirthDate]
FROM [AdventureWorksDW2012].[dbo].[DimCustomer]
WHERE BirthDate BETWEEN '1920-01-01' AND '1921-12-31'

druhá možnost je použít operátory <= a >=

--Možnost 2
SELECT [CustomerKey]
,[FirstName]
,[LastName]
,[BirthDate]
FROM [AdventureWorksDW2012].[dbo].[DimCustomer]
WHERE BirthDate >= '1920-01-01' AND BirthDate<=
'1921-12-31'

Výsledkem je pouze 5 záznamů zákazníků narozených mezi 1.1.1920 a 31.12.1921

Vysledek po omezeni SQL WHERE

Výsledek příkladu po aplikaci klauzule

Reagovat na příspěvek