SQL Server SUBSTRING() Funktion

SQL Server SUBSTRING() Funktion

SUBSTRING-funktion i SQL Server bruges til at udtrække en understreng fra en streng, startende ved en specificeret position og med en valgfri længde.

Det er meget nyttigt, når du skal udtrække en bestemt del af en streng til yderligere behandling eller analyse.

SQL SUBSTRING-funktionen fungerer også i Azure SQL-database , Azure SQL Data Warehouse , og Parallel Data Warehouse .

Syntaks

Syntaksen for SQL SUBSTRING-funktionen er:

SUBSTRING(input_streng, start, længde);

Parametre:

  • Input_string – Det kan være et tegn-, binær-, tekst- eller billedudtryk.
  • Start - Det er et heltal, der definerer det sted, hvor den returnerede understreng starter. Den første position i strengen er 1.
  • Længde – Det er et positivt heltal, der angiver antallet af tegn, der skal returneres fra understrengen.
  • Vender tilbage - Det returnerer en understreng med en specificeret længde startende fra en placering i en inputstreng.

SQL Server SUBSTRING() funktionseksempel

Lad os se på nogle eksempler på SUBSTRING()-funktionen i SQL og forstå, hvordan man bruger den i SQL-server.

Eksempel på SQL SUBSTRING-funktion

I dette eksempel bruger vi SUBSTRING-funktionen i SQL Server.

Forespørgsel:

  SELECT SUBSTRING  ('techcodeview.com',1,5); 

Produktion:

eksempel på en delstrengfunktion

Regler for brug af SUBSTRING()-funktionen i SQL

  1. Alle tre argumenter er påkrævet i SQL substring()-funktionen. Hvis startpositionen overstiger det maksimale antal tegn i udtrykket, returnerer SQL Server substring()-funktionen intet.
  2. Den samlede længde kan overstige den maksimale tegnlængde for den originale streng.
  3. I dette tilfælde er den resulterende understreng hele strengen fra udtrykkets startposition til udtrykkets sluttegn.

SUBSTRING() Funktion med bogstavelige strenge

Det er meget nemt at bruge SQL SUBSTRING-funktionen med bogstavelige strenge, bare indsæt de ønskede værdier i syntaksen.

SUBSTRING() Funktion med bogstavelige strenge Eksempel

Overvej denne SQL SUBSTRING-funktionskommando:

  SELECT SUBSTRING (  'SQL In Geeksforgeeks', 7, 18  ) AS   ExtractString 

Det vil tage den originale streng 'SQL In Geeksforgeeks' og udtrække en understreng, der begynder med det 7. tegn og udtrækker en længde på 18 tegn. En ny kolonne med aliaset ExtractString vil blive returneret sammen med den resulterende understreng.

For at udtrække en sektion af en streng baseret på en forudbestemt startposition og længde, bruges SUBSTRING-funktionen. Den oprindelige streng sendes som funktionens første argument, og det andet argument angiver starttegnet, i dette tilfælde det syvende. Det tredje argument, som er på 18 tegn i dette tilfælde, angiver, hvor lang tid understrengen skal udtrækkes.

Formålet med at bruge denne SQL-forespørgsel er at udtrække en specifik del af en længere streng, der er nødvendig for yderligere analyse eller rapportering. Det kan være nyttigt, når vi har at gøre med store datasæt, hvor vi skal udtrække og manipulere specifik information fra en lang tekststreng.

Produktion

substring() funktion med literal strenge eksempel output

SUBSTRING() Funktion med tabelkolonner

For at bruge SUBSTRING()-funktionen med tabelkolonner vil vi først oprette en tabel Player_Details , som har tre kolonner: PlayerId, PlayerName og City. Da kolonnen PlayerId er udpeget som den primære nøgle, vil hver række i tabellen have et andet PlayerId som sin identifikator.

Ti rækker med data tilføjes til tabellen ved hjælp af INSERT INTO-sætningen, efter at tabellen er blevet oprettet. Mens kolonnen PlayerId automatisk genereres som en unik identifikator for hver række, har kolonnerne PlayerName og City værdier angivet for hver række.

Forespørgsel:

  CREATE TABLE  Player_Details (  PlayerId INT  PRIMARY KEY  ,  PlayerName VARCHAR(50),  City VARCHAR(50) );   INSERT INTO  Player_Details (PlayerId, PlayerName, City)   VALUES    (1,'John', 'New York'),  (2,'Sarah', 'Los Angeles'),  (3,'David', 'Chicago'),  (4,'Emily', 'Houston'),  (5,'Michael', 'Phoenix'),  (6,'Ava', 'Philadelphia'),  (7,'Joshua', 'San Antonio'),  (8,'Sophia', 'San Diego'),  (9,'Daniel', 'Dallas'),  (10,'Olivia', 'San Jose'); 

Produktion:

tabel oprettet

SUBSTRING()-funktion med tabelkolonner Eksempel

I dette eksempel vil vi bruge funktionen SUBSTRING() på en tabelkolonne.

Forespørgsel

  SELECT SUBSTRING  (PlayerName, 1, 3)  AS   ExtractString   FROM   Player_Details; 

Produktion

substring() funktion med tabelkolonner eksempel output

Kolonnen PlayerName i underforespørgslen modtager funktionen SUBSTRING, som vælger de første tre tegn i hvert navn. Resultatet af denne understrengsoperation er at returnere kolonnen PlayerName fra underforespørgslen i en ny kolonne med aliaset ExtractString.

Brug af SUBSTRING på indlejrede forespørgsler

Hvis du antager, at du vil bruge SUBSTRING-funktionen på en indlejret forespørgsel i tabellen player_Details, kan du bruge følgende SQL-kode

Forespørgsel

  SELECT SUBSTRING  (subquery.PlayerName, 1, 3)  AS   ShortenedName, subquery.City   FROM   (   SELECT   *   FROM   Player_Details   WHERE   City = 'New York' )  AS   subquery; 

Produktion

img

For at vælge alle rækker fra tabellen Player_Details, hvor kolonnen By er lig med New York, opretter denne SQL-forespørgsel først en indlejret forespørgsel. En afledt tabel eller underforespørgsel, der indeholder resultaterne af denne indlejrede forespørgsel, bruges derefter som input til SUBSTRING-funktionen.

Kolonnen PlayerName i underforespørgslen modtager funktionen SUBSTRING, som vælger de første tre tegn i hvert navn. Resultatet af denne understrengsoperation returneres derefter sammen med kolonnen By fra underforespørgslen i en ny kolonne med aliaset ShortenedName.

Vigtig funktion om SQL SUBSTRING-funktionen

  • SUBSTRING()-funktionen udtrækker en understreng fra en streng, startende ved en specificeret position og med en valgfri længde.
  • Det kan bruges med bogstavelige strenge eller kolonner i en tabel.
  • Det VENSTRE() og HØJRE() funktioner er også implementering af SUBSTRING() funktion.
  • Brug af SUBSTRING() i WHERE-sætningen påvirker forespørgselsydeevnen negativt, da funktionen vil blive udført for hver række.