logo

SQL Server SUBSTRING()-funktion

SUBSTRING-funktion i SQL Server används för att extrahera en delsträng från en sträng, med start vid en angiven position och med en valfri längd.

Det är mycket användbart när du behöver extrahera en specifik del av en sträng för vidare bearbetning eller analys.



SQL SUBSTRING-funktionen fungerar också i Azure SQL-databas , Azure SQL Data Warehouse , och Parallell Data Warehouse .

Syntax

Syntaxen för SQL SUBSTRING-funktionen är:

SUBSTRING(ingångssträng, start, längd);



Parametrar:

  • Input_string – Det kan vara ett tecken-, binär-, text- eller bilduttryck.
  • Start - Det är ett heltal som definierar platsen där den returnerade delsträngen börjar. Den första positionen i strängen är 1.
  • Längd – Det är ett positivt heltal som anger antalet tecken som ska returneras från delsträngen.
  • Returer – Den returnerar en delsträng med en specificerad längd från en plats i en inmatningssträng.

SQL Server SUBSTRING() Funktionsexempel

Låt oss titta på några exempel på SUBSTRING()-funktionen i SQL och förstå hur man använder den i SQL-server.

Exempel på SQL SUBSTRING-funktion

I det här exemplet använder vi funktionen SUBSTRING i SQL Server.

Fråga:



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

Produktion:

exempel på delsträngsfunktion

Regler för att använda SUBSTRING()-funktionen i SQL

  1. Alla tre argumenten krävs i SQL substring()-funktionen. Om startpositionen överstiger det maximala antalet tecken i uttrycket returnerar SQL Server-substring()-funktionen ingenting.
  2. Den totala längden kan överstiga den maximala teckenlängden för originalsträngen.
  3. I det här fallet är den resulterande delsträngen hela strängen från uttryckets startposition till uttryckets sluttecknet.

SUBSTRING() Funktion med bokstavliga strängar

Att använda SQL SUBSTRING-funktionen med bokstavliga strängar är mycket enkelt, lägg bara de önskade värdena i syntaxen.

referera datatyper i java

SUBSTRING() Funktion med bokstavliga strängar Exempel

Tänk på det här SQL SUBSTRING-funktionskommandot:

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

Det kommer att ta den ursprungliga strängen 'SQL In Geeksforgeeks' och extrahera en delsträng som börjar med det 7:e tecknet och extraherar en längd på 18 tecken. En ny kolumn med aliaset ExtractString kommer att returneras tillsammans med den resulterande delsträngen.

java int till char

För att extrahera en sektion av en sträng baserat på en förutbestämd startposition och längd, används SUBSTRING-funktionen. Den ursprungliga strängen skickas som funktionens första argument, och det andra argumentet anger starttecknet, i det här fallet det sjunde. Det tredje argumentet, som är 18 tecken i det här fallet, anger hur lång delsträngen som ska extraheras.

Syftet med att använda denna SQL-fråga är att extrahera en specifik del av en längre sträng som behövs för ytterligare analys eller rapportering. Det kan vara användbart när vi har att göra med stora datamängder där vi behöver extrahera och manipulera specifik information från en lång textsträng.

Produktion

substring()-funktion med exempelutdata för bokstavliga strängar

SUBSTRING() Funktion med tabellkolumner

För att använda funktionen SUBSTRING() med tabellkolumner skapar vi först en tabell Spelare_detaljer , som har tre kolumner: PlayerId, PlayerName och City. Eftersom kolumnen PlayerId är utsedd som primärnyckel kommer varje rad i tabellen att ha ett annat PlayerId som identifierare.

Tio rader med data läggs till i tabellen med hjälp av INSERT INTO-satsen efter att tabellen har skapats. Spelar-ID-kolumnen kommer att genereras automatiskt som en unik identifierare för varje rad, men kolumnerna Spelarnamn och Stad har värden specificerade för varje rad.

Fråga:

  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:

tabell skapad

SUBSTRING()-funktion med tabellkolumner Exempel

I det här exemplet kommer vi att använda funktionen SUBSTRING() i en tabellkolumn.

Fråga

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

Produktion

substring() funktion med tabellkolumner exempelutdata

Kolumnen PlayerName i underfrågan får funktionen SUBSTRING, som väljer de tre första tecknen i varje namn. Resultatet av denna delsträngsoperation är att returnera kolumnen PlayerName från underfrågan i en ny kolumn med aliaset ExtractString.

dolda appar på den här enheten

Använder SUBSTRING på en kapslad sökning

Om du antar att du vill använda SUBSTRING-funktionen på en kapslad fråga i tabellen player_Details, kan du använda följande SQL-kod

Fråga

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

Produktion

img

För att kunna välja alla rader från tabellen Player_Details där kolumnen Stad är lika med New York, skapar denna SQL-fråga först en kapslad fråga. En härledd tabell eller underfråga som innehåller resultaten av denna kapslade fråga används sedan som indata för SUBSTRING-funktionen.

Kolumnen PlayerName i underfrågan får funktionen SUBSTRING, som väljer de tre första tecknen i varje namn. Resultatet av denna delsträngsoperation returneras sedan tillsammans med kolumnen Stad från underfrågan i en ny kolumn med aliaset ShortenedName.

Viktig funktion om SQL SUBSTRING-funktionen

  • Funktionen SUBSTRING() extraherar en delsträng från en sträng, med början vid en angiven position och med en valfri längd.
  • Den kan användas med bokstavliga strängar eller kolumner i en tabell.
  • De VÄNSTER() och HÖGER() funktioner är också implementeringar av SUBSTRING()-funktionen.
  • Att använda SUBSTRING() i WHERE-satsen påverkar frågans prestanda negativt, eftersom funktionen kommer att exekveras för varje rad.