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

Jak nahradit část řetězce v T-SQL

Problém:

Chcete vybrat řádky, které obsahují řetězec začínající jedním z dané skupiny znaků.

Příklad:

Naše databáze obsahuje tabulku s názvem gamer s údaji v id a user sloupce.

id uživatel
1 superman
2 magnus
3 lucy
4 stan
5 ali

Pojďme najít všechna data pro hráče, jejichž uživatelská jména začínají na „a“, „b“, „r“ nebo „s“.

Řešení:

SELECT id, 
  user
FROM gamer
WHERE user LIKE '[abrs]%';

Zde je výsledek:

id uživatel
1 superman
4 stan
5 ali

Diskuse:

Pokud chcete filtrovat řádky obsahující řetězec, který odpovídá danému vzoru, použijte klauzuli WHERE s operátorem LIKE. Klauzule WHERE se používá k filtrování záznamů, které splňují uvedené podmínky. Za WHERE přidáte název sloupce nebo výraz, následovaný operátorem (např. LIKE) a porovnávanými hodnotami. Po LIKE zadáte vzor, ​​který se má shodovat (v našem příkladu WHERE user LIKE '[abrs]%' ). Vzor může obsahovat znaky a zástupné znaky.

Jeden ze zástupných znaků T-SQL je „%“, což představuje nula nebo více neznámých znaků. Zástupný znak podtržítka ( _ ) označuje jeden znak. Závorky ( [] ) ohraničují vzor, ​​aby odpovídal; tento vzor může obsahovat jedno nebo více písmen nebo číslic. Cílový řetězec se může shodovat s jedním nebo více znaky v závorkách.

V našem příkladu vzor '[abrs]%' označuje, že uživatelské jméno musí začínat buď a, b, r nebo s. Za počátečním znakem může být nula nebo více znaků, protože jsme použili zástupný znak %.

Uživatelé s id=2 a id=3 nejsou zobrazeny; jejich názvy začínají na „l“ a „m“, a proto neodpovídají vzoru, který jsme vybrali.


  1. 1114 (HY000):Tabulka je plná

  2. Jak seskupit podle dvou sloupců v SQL

  3. Postgresql rekurzivní vlastní připojení

  4. Jak předat booleovský parametr do procedury Oracle C#