602SQL-Úplná dokumentace Index  

Predikát LIKE (SQL)

predikát_LIKE ::= výraz [ NOT ] LIKE výraz2 [ ESCAPE výraz3 ]

Predikát LIKE slouží k porovnávání výrazu se vzorem zadaným výrazem2. Všechny výrazy musí být typu řetězec znaků.

Obsah výrazu se porovnává s výrazem2 znak po znaku s těmito výjimkami: znak _ (podtržítko) ve výrazu2 odpovídá libovolnému znaku ve výrazu a znak % (procento) ve výrazu2 odpovídá libovolnému řetězci znaků (případně i prázdnému) ve výrazu1.

Je-li uveden výraz3, pak jeho hodnotou musí být jediný znak, jinak nastane chybový sqlstate 22019. Pokud je tento znak použit ve výrazu2 bezprostředně před znakem _ nebo %, pak tato dvojice reprezentuje znak _ resp. %, jemuž musí ve výrazu odpovídat stejný znak.

Existuje-li způsob, jak podle těchto pravidel srovnat všechny znaky ve výrazu a výrazu2, predikát má hodnotu TRUE, jinak má hodnotu FALSE.

Od verze 9.5 existuje v SQL možnost pracovat s regulárními výrazy - viz funkce REGEXP_LIKE.


Příklad použití:

Najít jména končící na "ová" z Prahy

SELECT Zamestnanci.jmeno
FROM Zamestnanci
WHERE (jmeno LIKE '%ová') AND (mesto LIKE 'Praha%')

Najít kód, který má na druhém místě řetězce znak %:

...
WHERE kod LIKE '_\%%' ESCAPE '\'