I SQL Server kan du sammenkæde to eller flere strenge ved at bruge T-SQL CONCAT()
fungere. Du kan også bruge SQL Servers strengsammenkædningsoperator (+
) for at gøre det samme. Begge er forklaret her.
I SQL Server (og i ethvert computerprogrammeringsmiljø) er strengsammenkædning operationen med at forbinde tegnstrenge ende-til-ende.
Her er et eksempel:
SELECT CONCAT('Peter', ' ', 'Griffin') AS 'Full Name';
Resultat:
Full Name ------------- Peter Griffin
Bemærk, at jeg faktisk sammenkædede 3 strenge her. Jeg sammenkædede fornavnet, efternavnet plus et mellemrum.
Hvis jeg ikke tilføjede pladsen, ville det have set sådan ud:
SELECT CONCAT('Peter', 'Griffin') AS 'Full Name';
Resultat:
Full Name ------------ PeterGriffin
Hvilket måske eller måske ikke er det resultat, du leder efter.
Så hvis vi anvender dette på en database, så kan forespørgslen se nogenlunde sådan ud:
SELECT CONCAT(FirstName, ' ', LastName) AS 'Full Name' FROM Individuals WHERE IndividualId = '1';
Resultat:
Full Name ------------- Peter Griffin
Hvis du sammenkæder mere end to strenge, og du har brug for et mellemrum (eller en anden separator), kan du overveje at bruge CONCAT_WS()
fungere. Dette giver dig mulighed for at angive en separator, der skal bruges mellem hver streng. Du behøver kun at angive separatoren én gang, og den bruges på hver streng, der er sammenkædet, hvilket sparer dig for at skulle genindtaste den mellem hver streng.
NULL-argumenter
Hvis du er bekendt med MySQL, ved du måske, at den også har en CONCAT()
fungere. Der er dog én forskel mellem SQL Servers CONCAT()
funktion og MySQL's CONCAT()
funktion er, hvordan de håndterer NULL
argumenter.
I MySQL er CONCAT()
funktion returnerer NULL
hvis et argument er NULL
. I SQL Server kan du dog tilføje en NULL
argument uden at det resulterer i en NULL
resultat.
MySQL
Her er hvad MySQL gør:
SELECT CONCAT('Homer', NULL, 'Simpson') AS 'Full Name';
Resultat:
+-----------+ | Full Name | +-----------+ | NULL | +-----------+
SQL-server
Her er, hvad SQL Server gør:
SELECT CONCAT('Peter', NULL, 'Griffin') AS 'Full Name';
Resultat:
Full Name ------------ PeterGriffin
En anden måde at sammenkæde – strengsammenkædningsoperatøren (+
)
SQL Server giver en anden måde at sammenkæde strenge. Du kan bruge +
strengsammenkædningsoperator.
SELECT 'Peter' + ' ' + 'Griffin' AS 'Full Name';
Resultat:
Full Name ------------- Peter Griffin