sql >> Databasteknik >  >> RDS >> Database

Hur man byter ut en del av en sträng i T-SQL

Problem:

Du vill välja rader som innehåller en sträng som börjar med en av en viss grupp tecken.

Exempel:

Vår databas har en tabell som heter gamer med data i id och user kolumner.

id användare
1 superman
2 magnus
3 lucy
4 stan
5 ali

Låt oss hitta all data för spelare vars användarnamn börjar med 'a', 'b', 'r' eller 's'.

Lösning:

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

Här är resultatet:

id användare
1 superman
4 stan
5 ali

Diskussion:

Om du vill filtrera rader som innehåller en sträng som matchar ett givet mönster, använd WHERE-satsen med LIKE-operatorn. WHERE-satsen används för att filtrera poster som uppfyller angivna villkor. Efter WHERE lägger du till ett kolumnnamn eller ett uttryck, följt av operatorn (t.ex. LIKE) och jämförelsevärdet/värdena. Efter LIKE anger du mönstret som ska matcha (i vårt exempel, WHERE user LIKE '[abrs]%' ). Mönstret kan innehålla tecken och jokertecken.

Ett av T-SQL:s jokertecken är "%", som representerar noll eller fler okända tecken. Understrecket jokertecken ( _ ) indikerar ett tecken. Hakparenteserna ( [] ) omsluter mönstret för att matcha; detta mönster kan innehålla en eller flera bokstäver eller siffror. Målsträngen kan matcha ett eller flera av tecknen inom parentes.

I vårt exempel är mönstret '[abrs]%' anger att användarnamnet måste börja med antingen a, b, r eller s. Efter starttecknet kan det finnas noll eller fler tecken eftersom vi har använt jokertecken %.

Användarna med id=2 och id=3 visas inte; deras namn börjar med "l" och "m" och matchar därför inte mönstret vi har valt.


  1. Postgresql skapar inte db med "createdb" som superanvändare, men matar inte ut fel

  2. Hur man extraherar en delsträng från en sträng i PostgreSQL/MySQL

  3. Hur ansluter man mysql workbench till att köra mysql inuti docker?

  4. Oracle Sequence värden är inte beställda