Funcția SQL Server SUBSTRING().

Funcția SQL Server SUBSTRING().

Funcția SUBSTRING în SQL Server este folosit pentru a extrage un subșir dintr-un șir, începând de la o poziție specificată și cu o lungime opțională.

Este foarte util atunci când trebuie să extrageți o anumită porțiune a unui șir pentru procesare sau analiză ulterioară.

Funcția SQL SUBSTRING funcționează și în Baza de date Azure SQL , Azure SQL Data Warehouse , și Depozitul de date paralel .

Sintaxă

Sintaxa funcției SQL SUBSTRING este:

SUBSTRING(șir_input, început, lungime);

Parametri:

  • șir_input – Poate fi o expresie de caracter, binar, text sau imagine.
  • Start - Este un număr întreg care definește locația de unde începe subșirul returnat. Prima poziție din șir este 1.
  • lungime - Este un număr întreg pozitiv care specifică numărul de caractere care urmează să fie returnate din subșir.
  • Se intoarce - Returnează un subșir cu o lungime specificată pornind de la o locație dintr-un șir de intrare.

Exemplu de funcție SQL Server SUBSTRING().

Să ne uităm la câteva exemple ale funcției SUBSTRING() în SQL și să înțelegem cum să o folosim în serverul SQL.

Funcția SQL SUBSTRING Exemplu

În acest exemplu, folosim funcția SUBSTRING în SQL Server.

Interogare:

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

Ieșire:

exemplu de funcție subșir

Reguli pentru utilizarea funcției SUBSTRING() în SQL

  1. Toate cele trei argumente sunt necesare în funcția SQL substring(). Dacă poziția de pornire depășește numărul maxim de caractere din expresie, funcția SQL Server substring() nu returnează nimic.
  2. Lungimea totală poate depăși lungimea maximă de caractere a șirului original.
  3. În acest caz, subșirul rezultat este întregul șir de la poziția de început a expresiei până la caracterul de sfârșit al expresiei.

SUBSTRING() Funcție cu șiruri literale

Utilizarea funcției SQL SUBSTRING cu șiruri de caractere este foarte ușoară, doar puneți valorile dorite în sintaxă.

SUBSTRING() Funcție cu șiruri literale Exemplu

Luați în considerare această comandă a funcției SQL SUBSTRING:

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

Va lua șirul original „SQL În Geeksforgeeks” și va extrage un subșir care începe cu al șaptelea caracter și va extrage o lungime de 18 caractere. O nouă coloană cu aliasul ExtractString va fi returnată împreună cu subșirul rezultat.

Pentru a extrage o secțiune a unui șir pe baza unei poziții de pornire predeterminate și a unei lungimi, este utilizată funcția SUBSTRING. Șirul original este transmis ca prim argument al funcției, iar al doilea argument specifică caracterul de început, în acest caz, al șaptelea. Al treilea argument, care are 18 caractere în acest caz, specifică cât de lungă trebuie extras subșirul.

Scopul utilizării acestei interogări SQL este de a extrage o anumită parte dintr-un șir mai lung care este necesar pentru analize sau raportări ulterioare. Poate fi util atunci când avem de-a face cu seturi mari de date în care trebuie să extragem și să manipulăm informații specifice dintr-un șir lung de text.

Ieșire

funcția substring() cu șiruri literale de exemplu de ieșire

Funcția SUBSTRING() cu coloane de tabel

Pentru a folosi funcția SUBSTRING() cu coloane de tabel, vom crea mai întâi un tabel Player_Details , care are trei coloane: PlayerId, PlayerName și City. Deoarece coloana PlayerId este desemnată ca cheie primară, fiecare rând din tabel va avea un alt PlayerId ca identificator.

Zece rânduri de date sunt adăugate la tabel folosind instrucțiunea INSERT INTO după ce tabelul a fost creat. În timp ce coloana PlayerId va fi generată automat ca un identificator unic pentru fiecare rând, coloanele PlayerName și City au valori specificate pentru fiecare rând.

Interogare:

  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'); 

Ieșire:

tabel creat

SUBSTRING() Funcție cu coloane de tabel Exemplu

În acest exemplu, vom folosi funcția SUBSTRING() pe o coloană de tabel.

Interogare

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

Ieșire

funcția substring() cu coloane de tabel exemplu de ieșire

Coloana PlayerName din subinterogare primește funcția SUBSTRING, care alege primele trei caractere ale fiecărui nume. Rezultatul acestei operațiuni subșir este de a returna coloana PlayerName din subinterogare într-o coloană nouă cu alias-ul ExtractString.

Utilizarea SUBSTRING pe o interogări imbricate

Presupunând că doriți să utilizați funcția SUBSTRING pe o interogare imbricată în tabelul player_Details, puteți utiliza următorul cod SQL

Interogare

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

Ieșire

img

Pentru a selecta toate rândurile din tabelul Player_Details unde coloana Oraș este egală cu New York, această interogare SQL creează mai întâi o interogare imbricată. Un tabel derivat sau o subinterogare care conține rezultatele acestei interogări imbricate este apoi folosită ca intrare pentru funcția SUBSTRING.

Coloana PlayerName din subinterogare primește funcția SUBSTRING, care alege primele trei caractere ale fiecărui nume. Rezultatul acestei operațiuni subșir este apoi returnat alături de coloana Oraș din subinterogare într-o coloană nouă cu alias ShortenedName.

Funcție importantă Despre funcția SQL SUBSTRING

  • Funcția SUBSTRING() extrage un subșir dintr-un șir, începând de la o poziție specificată și cu o lungime opțională.
  • Poate fi folosit cu șiruri sau coloane literale dintr-un tabel.
  • The STÂNGA() și DREAPTA() funcțiile sunt, de asemenea, implementarea funcției SUBSTRING().
  • Utilizarea SUBSTRING() în clauza WHERE are un impact negativ asupra performanței interogării, deoarece funcția va fi executată pentru fiecare rând.