SUBSTRING-functie in SQL Server wordt gebruikt om een substring uit een string te extraheren, beginnend op een gespecificeerde positie en met een optionele lengte.
Het is erg handig als u een specifiek gedeelte van een tekenreeks moet extraheren voor verdere verwerking of analyse.
De SQL SUBSTRING-functie werkt ook Azure SQL-database , Azure SQL-datawarehouse , En Parallel datawarehouse .
Syntaxis
De syntaxis van de SQL SUBSTRING-functie is:
SUBSTRING(invoertekenreeks, begin, lengte);
Parameters:
- Invoerreeks – Het kan een teken-, binaire, tekst- of afbeeldingsuitdrukking zijn.
- Begin - Het is een geheel getal dat de locatie definieert waar de geretourneerde subtekenreeks begint. De eerste positie in de string is 1.
- Lengte – Het is een positief geheel getal dat het aantal tekens specificeert dat uit de subtekenreeks moet worden geretourneerd.
- Geeft terug - Het retourneert een subtekenreeks met een opgegeven lengte, beginnend vanaf een locatie in een invoertekenreeks.
SQL Server SUBSTRING() Functievoorbeeld
Laten we eens kijken naar enkele voorbeelden van de functie SUBSTRING() in SQL en begrijpen hoe u deze in de SQL-server kunt gebruiken.
SQL SUBSTRING-functie Voorbeeld
In dit voorbeeld gebruiken we de functie SUBSTRING in SQL Server.
Vraag:
SELECT SUBSTRING ('techcodeview.com',1,5);> Uitgang:

Regels voor het gebruik van de functie SUBSTRING() in SQL
- Alle drie de argumenten zijn vereist in de SQL-functie substring(). Als de startpositie het maximale aantal tekens in de expressie overschrijdt, retourneert de functie substring() van SQL Server niets.
- De totale lengte kan de maximale tekenlengte van de originele tekenreeks overschrijden.
- In dit geval is de resulterende subtekenreeks de gehele tekenreeks vanaf de startpositie van de expressie tot het eindteken van de expressie.
SUBSTRING() Functie met letterlijke tekenreeksen
Het gebruik van de SQL SUBSTRING-functie met letterlijke tekenreeksen is heel eenvoudig: plaats gewoon de gewenste waarden in de syntaxis.
programmeren in c-arrays
SUBSTRING() Functie met letterlijke tekenreeksen Voorbeeld
Overweeg deze SQL SUBSTRING-functieopdracht:
SELECT SUBSTRING ( 'SQL In Geeksforgeeks', 7, 18 ) AS ExtractString>
Het zal de originele string ‘SQL In Geeksforgeeks’ nodig hebben en een substring extraheren die begint met het 7e teken en een lengte van 18 tekens extraheert. Er wordt een nieuwe kolom met de alias ExtractString geretourneerd, samen met de resulterende subtekenreeks.
Om een sectie van een string te extraheren op basis van een vooraf bepaalde startpositie en lengte, wordt de functie SUBSTRING gebruikt. De originele string wordt doorgegeven als het eerste argument van de functie, en het tweede argument specificeert het startteken, in dit geval het zevende. Het derde argument, dat in dit geval 18 tekens lang is, geeft aan hoe lang de subtekenreeks moet worden geëxtraheerd.
Het doel van het gebruik van deze SQL-query is om een specifiek deel van een langere reeks te extraheren die nodig is voor verdere analyse of rapportage. Het kan handig zijn bij het omgaan met grote datasets waarbij we specifieke informatie uit een lange reeks tekst moeten extraheren en manipuleren.
Hoe een bestand te openen met Java
Uitvoer

SUBSTRING() Functie met tabelkolommen
Om de functie SUBSTRING() met tabelkolommen te gebruiken, zullen we eerst een tabel maken Speler_details , die drie kolommen heeft: PlayerId, PlayerName en City. Omdat de PlayerId-kolom is aangewezen als de primaire sleutel, heeft elke rij in de tabel een andere PlayerId als identificatie.
Nadat de tabel is gemaakt, worden tien rijen met gegevens aan de tabel toegevoegd met behulp van de instructie INSERT INTO. Hoewel de kolom PlayerId automatisch wordt gegenereerd als een unieke identificatie voor elke rij, hebben de kolommen PlayerName en City waarden gespecificeerd voor elke rij.
Vraag :
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');>
Uitgang:

SUBSTRING() Functie met voorbeeld van tabelkolommen
In dit voorbeeld gebruiken we de functie SUBSTRING() voor een tabelkolom.
Vraag
SELECT SUBSTRING (PlayerName, 1, 3) AS ExtractString FROM Player_Details;>
Uitvoer

De kolom Spelernaam in de subquery ontvangt de functie SUBSTRING, die de eerste drie tekens van elke naam kiest. Het resultaat van deze subtekenreeksbewerking is het retourneren van de kolom Spelernaam uit de subquery in een nieuwe kolom met de alias ExtractString.
SUBSTRING gebruiken op geneste zoekopdrachten
Ervan uitgaande dat u de functie SUBSTRING wilt gebruiken voor een geneste query in de tabel player_Details, kunt u de volgende SQL-code gebruiken
Vraag
mysql lijst gebruikers
SELECT SUBSTRING (subquery.PlayerName, 1, 3) AS ShortenedName, subquery.City FROM ( SELECT * FROM Player_Details WHERE City = 'New York' ) AS subquery;>
Uitvoer

Om alle rijen uit de tabel Player_Details te selecteren waarbij de kolom Stad gelijk is aan New York, maakt deze SQL-query eerst een geneste query. Een afgeleide tabel of subquery die de resultaten van deze geneste query bevat, wordt vervolgens gebruikt als invoer voor de functie SUBSTRING.
De kolom Spelernaam in de subquery ontvangt de functie SUBSTRING, die de eerste drie tekens van elke naam kiest. Het resultaat van deze subtekenreeksbewerking wordt vervolgens samen met de kolom Stad uit de subquery geretourneerd in een nieuwe kolom met de alias ShortenedName.
Belangrijke functie over SQL SUBSTRING-functie
- De functie SUBSTRING() extraheert een subtekenreeks uit een tekenreeks, beginnend op een opgegeven positie en met een optionele lengte.
- Het kan worden gebruikt met letterlijke tekenreeksen of kolommen in een tabel.
- De LINKS() En RECHTS() functies zijn ook een implementatie van de functie SUBSTRING().
- Het gebruik van SUBSTRING() in de WHERE-clausule heeft een negatieve invloed op de prestaties van de query, omdat de functie voor elke rij wordt uitgevoerd.