Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So verketten Sie Zeichenfolgen in SQL Server mit CONCAT()

In SQL Server können Sie zwei oder mehr Zeichenfolgen mithilfe von T-SQL CONCAT() verketten Funktion. Sie können auch den Zeichenfolgenverkettungsoperator von SQL Server verwenden (+ ) um dasselbe zu tun. Beides wird hier erklärt.

In SQL Server (und in jeder Computerprogrammierumgebung) ist die Zeichenfolgenverkettung der Vorgang, bei dem Zeichenfolgen von Ende zu Ende verbunden werden.

Hier ist ein Beispiel:

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

Ergebnis:

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

Beachten Sie, dass ich hier tatsächlich 3 Saiten verkettet habe. Ich habe den Vornamen, den Nachnamen und ein Leerzeichen verkettet.

Wenn ich das Leerzeichen nicht hinzugefügt hätte, hätte es so ausgesehen:

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

Ergebnis:

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

Das kann das gesuchte Ergebnis sein oder auch nicht.

Wenn wir das also auf eine Datenbank anwenden, könnte die Abfrage etwa so aussehen:

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

Ergebnis:

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

Wenn Sie mehr als zwei Zeichenfolgen verketten und ein Leerzeichen (oder ein anderes Trennzeichen) benötigen, sollten Sie die Verwendung von CONCAT_WS() in Betracht ziehen Funktion. Auf diese Weise können Sie ein Trennzeichen angeben, das zwischen den einzelnen Zeichenfolgen verwendet werden soll. Sie müssen das Trennzeichen nur einmal angeben und es wird für jede verkettete Zeichenfolge verwendet, sodass Sie es nicht zwischen den einzelnen Zeichenfolgen erneut eingeben müssen.

NULL-Argumente

Wenn Sie mit MySQL vertraut sind, wissen Sie vielleicht, dass es auch ein CONCAT() gibt Funktion. Es gibt jedoch einen Unterschied zwischen SQL Server CONCAT() -Funktion und MySQL CONCAT() Funktion ist, wie sie mit NULL umgehen Argumente.

In MySQL der CONCAT() Funktion gibt NULL zurück wenn irgendein Argument NULL ist . In SQL Server können Sie jedoch einen NULL hinzufügen -Argument, ohne dass es zu einem NULL führt Ergebnis.

MySQL

Folgendes macht MySQL:

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

Ergebnis:

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

SQL-Server

Folgendes macht SQL Server:

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

Ergebnis:

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

Eine andere Art der Verkettung – Der String-Verkettungsoperator (+ )

SQL Server bietet eine weitere Möglichkeit zum Verketten von Zeichenfolgen. Sie können den + verwenden String-Verkettungsoperator.

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

Ergebnis:

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