sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan sammenkædes strenge i SQL Server med CONCAT()

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

  1. Sådan hentes to Json-svar Json Object og Array

  2. Måder at migrere SQL Server Database til Azure SQL Database

  3. Oracle pivot med underforespørgsel

  4. Implementer flere Oracle-beregningsinstanser ved hjælp af en instanspulje og terraform