sql >> Database >  >> RDS >> Database

Een deel van een string vervangen in T-SQL

Probleem:

U wilt rijen selecteren die een tekenreeks bevatten die begint met een van een bepaalde groep tekens.

Voorbeeld:

Onze database heeft een tabel met de naam gamer met gegevens in de id en user kolommen.

id gebruiker
1 superman
2 magnus
3 lucy
4 stan
5 ali

Laten we alle gegevens zoeken voor gamers wiens gebruikersnamen beginnen met 'a', 'b', 'r' of 's'.

Oplossing:

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

Hier is het resultaat:

id gebruiker
1 superman
4 stan
5 ali

Discussie:

Als u rijen wilt filteren die een tekenreeks bevatten die overeenkomt met een bepaald patroon, gebruikt u de WHERE-component met de LIKE-operator. De WHERE-component wordt gebruikt om records te filteren die aan de gestelde voorwaarden voldoen. Na WHERE voeg je een kolomnaam of een uitdrukking toe, gevolgd door de operator (bijvoorbeeld LIKE) en de vergelijkingswaarde(n). Na LIKE voer je het patroon in dat overeenkomt (in ons voorbeeld WHERE user LIKE '[abrs]%' ). Het patroon kan tekens en jokertekens bevatten.

Een van de wildcards van T-SQL is '%', wat staat voor nul of meer onbekende tekens. Het underscore-jokerteken ( _ ) geeft één teken aan. De haakjes ( [] ) omsluiten het patroon dat overeenkomt; dit patroon kan een of meer letters of cijfers bevatten. De doelreeks kan overeenkomen met een of meer van de tekens tussen haakjes.

In ons voorbeeld is het patroon '[abrs]%' geeft aan dat de gebruikersnaam moet beginnen met a, b, r of s. Na het beginteken kunnen er nul of meer tekens zijn omdat we het % jokerteken hebben gebruikt.

De gebruikers met id=2 en id=3 worden niet weergegeven; hun namen beginnen met 'l' en 'm' en komen dus niet overeen met het patroon dat we hebben geselecteerd.


  1. Een lijst met alle talen in SQL Server (T-SQL) krijgen

  2. Waarom kan ik een tabel maken met PRIMARY KEY op een nullable kolom?

  3. JDBC Batch invoegen uitzondering afhandeling

  4. Gebruik FILEGROUP_NAME() om de naam van een bestandsgroep in SQL Server te retourneren