sql >> Databáze >  >> RDS >> Database

Jak používat LIKE v SQL

Problém:

Chtěli byste najít podřetězec odpovídající vzoru v řetězci.

Příklad:

Naše databáze obsahuje tabulku s názvem zákazník s údaji v následujících sloupcích:id , first_name , last_name a city .

id first_name last_name město
1 Alan Watson Madrid
2 Lisa Černá Singapur
3 Laura Williams Seattle
4 Milán Cihla Soul

Podívejme se na několik příkladů shody vzorů v SQL.

Příklad 1:

Zobrazme křestní jméno, příjmení a město každého zákazníka, jehož název města začíná písmenem „S“.

Řešení:

SELECT last_name, first_name, city  
FROM customer
WHERE city LIKE 'S%';
last_name first_name město
Lisa Černá S ingapore
Milán Cihla S eoul
Laura Williams S jíst

Použili jsme zástupný znak %, který představuje nula nebo více neznámých znaků. Tento zástupný znak lze použít kdekoli v řetězci.

Příklad 2:

Ukažme křestní jméno, příjmení a město každého zákazníka, jehož název města obsahuje přesně pět znaků.

Řešení:

SELECT last_name, first_name, city  
FROM customer
WHERE city LIKE '_____';

Zde je výsledek:

last_name first_name město
Milan Cihla Soul

Zástupný znak podtržítka lze použít k reprezentaci jednoho neznámého znaku. Použitím pěti z nich za sebou tedy můžeme reprezentovat všechny řetězce dlouhé pět znaků. V našem příkladu je jediné město odpovídající tomuto popisu Soul.

Příklad 3:

Ukažme křestní jméno, příjmení a město každého zákazníka, jehož město začíná písmenem „S“ a má písmeno „o“ jako třetí znak.

Řešení:

SELECT last_name, first_name, city  
FROM customer
WHERE city LIKE 'S%o__';

Zde je výsledek:

last_name first_name město
Lisa Černá S ingapo re
Milán Cihla S eo ul

Dotaz vrátil pouze dva záznamy:Lisa Black z S ingapo re a Milan Brick z S eo ul. Tato města odpovídají danému vzoru. Zde jsme oba zástupné znaky zkombinovali, abychom vytvořili specifičtější vzor:všechny řetězce začínající velkým písmenem 'S' a obsahující libovolný počet dalších znaků za tím, pokud je předposledním znakem malé písmeno 'o. '

Diskuse:

Pokud chcete vybrat záznamy, ve kterých řetězec odpovídá určitému vzoru, můžete použít LIKE klauzule jako podmínka v WHERE doložka. Po WHERE , uveďte název sloupce (např. city ) následované LIKE klauzule určující vzor řetězce (např. 'S%o__' ), které chcete vyhledat.

Jak jsme viděli v příkladech, můžete použít dva speciální znaky známé jako zástupné znaky reprezentovat neznámé znaky:

  • Zástupný znak '%' označuje nula nebo více znaků.
  • Zástupný znak '_' označuje libovolný jednotlivý znak.

Tyto zástupné znaky můžete kombinovat, abyste dosáhli skutečně silných výsledků. Můžete také zřetězit více než jeden LIKE stav. Nakonec můžete použít NOT operátor k nalezení řetězců, které ne odpovídat danému vzoru.


  1. Jak spustit soubor .sql ve vývojářském nástroji Oracle SQL pro import databáze?

  2. SQL Server uložené procedury od Oracle®

  3. Řízení stromového zobrazení Zaškrtněte Přidat Odstranit uzly

  4. Jak dešifrovat heslo ze serveru SQL?