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