sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man sammanfogar strängar i SQL Server med CONCAT()

I SQL Server kan du sammanfoga två eller flera strängar genom att använda T-SQL CONCAT() fungera. Du kan också använda SQL Servers strängsammansättningsoperator (+ ) för att göra samma sak. Båda förklaras här.

I SQL Server (och i alla datorprogrammeringsmiljöer) är strängsammansättning operationen att sammanfoga teckensträngar från början till slut.

Här är ett exempel:

SELECT CONCAT('Peter', ' ', 'Griffin') AS 'Full Name';

Resultat:

Full Name    
-------------
Peter Griffin

Observera att jag faktiskt sammanfogade 3 strängar här. Jag sammanfogade förnamnet, efternamnet plus ett mellanslag.

Om jag inte lagt till utrymmet hade det sett ut så här:

SELECT CONCAT('Peter', 'Griffin') AS 'Full Name';

Resultat:

Full Name   
------------
PeterGriffin

Vilket kanske eller inte är resultatet du letar efter.

Så om vi tillämpar detta på en databas, kan frågan se ut ungefär så här:

SELECT CONCAT(FirstName, ' ', LastName) AS 'Full Name'
FROM Individuals
WHERE IndividualId = '1';

Resultat:

Full Name    
-------------
Peter Griffin

Om du sammanfogar mer än två strängar och du behöver ett mellanslag (eller annan avgränsare), överväg att använda CONCAT_WS() fungera. Detta gör att du kan ange en separator som ska användas mellan varje sträng. Du behöver bara ange separatorn en gång, och den används på varje sträng som är sammanlänkade, vilket gör att du slipper skriva om den mellan varje sträng.

NULL-argument

Om du är bekant med MySQL kanske du vet att den också har en CONCAT() fungera. Men en skillnad mellan SQL Servers CONCAT() funktion och MySQL:s CONCAT() funktion är hur de hanterar NULL argument.

I MySQL, CONCAT() funktion returnerar NULL om något argument är NULL . I SQL Server kan du dock lägga till en NULL argument utan att det resulterar i en NULL resultat.

MySQL

Så här gör MySQL:

SELECT CONCAT('Homer', NULL, 'Simpson') AS 'Full Name';

Resultat:

+-----------+
| Full Name |
+-----------+
| NULL      |
+-----------+

SQL-server

Så här gör SQL Server:

SELECT CONCAT('Peter', NULL, 'Griffin') AS 'Full Name';

Resultat:

Full Name   
------------
PeterGriffin

Ett annat sätt att sammanfoga – Stringkonkateneringsoperatören (+ )

SQL Server tillhandahåller ett annat sätt att sammanfoga strängar. Du kan använda + strängsammansättningsoperator.

SELECT 'Peter' + ' ' + 'Griffin' AS 'Full Name';

Resultat:

Full Name    
-------------
Peter Griffin

  1. Använd COL_LENGTH() för att få en kolumns längd i SQL Server

  2. Hur man beviljar alla rättigheter till rootanvändare i MySQL 8.0

  3. Vad är PLSQL-poster i Oracle

  4. Hur man gör en accentkänslig sökning i MySql