Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak łączyć ciągi w SQL Server za pomocą CONCAT()

W SQL Server możesz połączyć dwa lub więcej ciągów za pomocą CONCAT() języka T-SQL funkcjonować. Możesz także użyć operatora konkatenacji ciągów SQL Server (+ ) zrobić to samo. Oba są wyjaśnione tutaj.

W SQL Server (i w dowolnym środowisku programowania komputerowego) konkatenacja ciągów jest operacją łączenia ciągów znaków od końca do końca.

Oto przykład:

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

Wynik:

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

Zauważ, że w rzeczywistości połączyłem tutaj 3 ciągi. Połączyłem imię, nazwisko i spację.

Gdybym nie dodał spacji, wyglądałoby to tak:

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

Wynik:

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

Który może, ale nie musi być wynikiem, którego szukasz.

Więc jeśli zastosujemy to do bazy danych, zapytanie może wyglądać mniej więcej tak:

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

Wynik:

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

Jeśli łączysz więcej niż dwa ciągi i potrzebujesz spacji (lub innego separatora), rozważ użycie CONCAT_WS() funkcjonować. Pozwala to określić separator, który będzie używany pomiędzy każdym ciągiem. Musisz określić separator tylko raz i jest on używany w każdym połączonym ciągu, dzięki czemu nie musisz ponownie wpisywać go między każdym ciągiem.

Argumenty NULL

Jeśli znasz MySQL, być może wiesz, że ma on również funkcję CONCAT() funkcjonować. Jednak jedna różnica między CONCAT() w SQL Serverze funkcja i CONCAT() MySQL funkcja jest sposobem, w jaki obsługują NULL argumenty.

W MySQL funkcja CONCAT() funkcja zwraca NULL jeśli jakikolwiek argument ma wartość NULL . Jednak w SQL Server możesz dodać NULL argument bez niego dający w wyniku NULL wynik.

MySQL

Oto, co robi MySQL:

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

Wynik:

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

Serwer SQL

Oto, co robi SQL Server:

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

Wynik:

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

Inny sposób łączenia — operator łączenia ciągów znaków (+ )

SQL Server zapewnia inny sposób łączenia ciągów. Możesz użyć + operator konkatenacji ciągów.

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

Wynik:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Separator tysięcy w SQL Server 2008 dla kolumny

  2. Jak połączyć się z bazą danych SQL Server z poziomu JavaScript w przeglądarce?

  3. NIE USTAWIĆ NA UŻYTKOWANIE

  4. Łączenie trzech stołów z łączeniami innymi niż INNER JOIN

  5. pobierz ciąg rozdzielany przecinkami z wierszy