MS Access - Predikát LIKE

18. 12. 2012, Vladimír Klaus, přečteno 3200x

MS Access
SQL

Tento predikát se používá pro stanovení podmínky, která umožní jistou volnost – tedy podmínka může být zadána jako přibližná.

Chceme například zjistit, jaké máme zákazníky, jejichž křestní jméno začíná na „Ja“.

SELECT * FROM Zakaznici WHERE Jmeno LIKE "Ja*"

SQL obrázek

Jak vidíte, onu přibližnost zde zadáváme pomocí znaku „*“, který znamená libovolný počet znaků (ale také třeba i žádný znak).

Druhým podobným znakem je „?“, který ale zastává funkci právě jednoho znaku. Můžeme si to vyzkoušet na možná poněkud umělém příkladu – zjistíme, kteří zákazníci jsou z Prahy 8.

SELECT * FROM Zakaznici WHERE PSC LIKE "18? ??"

SQL obrázek

Jistě vás napadlo, co se stane, když umístíme hvězdičku na začátek nebo i na konec. Mělo by to fungovat, takže co třeba zjistit zákazníky, kteří mají ve svém telefonním čísle trojčíslí 147 a zároveň nejsou z Prahy.

SELECT * FROM Zakaznici
WHERE Telefon LIKE "*147*" AND Mesto NOT LIKE "Praha*"

SQL obrázek

V jiných databázích

Aby to nebylo tak jednoduché, jiné databáze využívají pro tuto potřebu jiné znaky. Někdy dokonce nejde přímo o databáze, ale třeba jen programovací jazyky, které s danou databází spolupracují. Proto si vždy ověřte, kde a za jakých podmínek budou takové dotazy použity!

  • % (procento) je místo * (hvězdička)
  • _ (podtržítko) je místo ? (otazník)