Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Punkt końcowy analizy SQL w usłudze Microsoft Fabric
Hurtownia danych w usłudze Microsoft Fabric
Baza danych SQL w usłudze Microsoft Fabric
Ta funkcja zwraca ciąg wynikowy z łączenia lub łączenia dwóch lub większej liczby wartości ciągu w sposób end-to-end.
Uwaga / Notatka
Aby dodać wartość rozdzielającą podczas łączenia, użyj CONCAT_WS.
Transact-SQL konwencje składni
Składnia
CONCAT ( argument1 , argument2 [ , argumentN ] ... )
Arguments
argument1, argument2 [ , argumentN ]
Wyrażenie dowolnej wartości ciągu. Funkcja CONCAT wymaga co najmniej dwóch argumentów i nie więcej niż 254 argumentów.
Typy zwracane
Wartość ciągu, której długość i typ zależą od danych wejściowych.
Uwagi
CONCAT przyjmuje zmienną liczbę argumentów ciągów i łączy je (lub sprzężenia) w jeden ciąg. Wymaga minimum dwóch wartości wejściowych; w przeciwnym razie powoduje błąd CONCAT .
CONCAT niejawnie konwertuje wszystkie argumenty na typy ciągów przed łączeniem.
CONCAT niejawnie konwertuje wartości zerowe na puste ciągi znaków. Jeśli CONCAT odbiera argumenty ze wszystkimi wartościami NULL, zwraca pusty ciąg typu varchar(1). Niejawna konwersja na ciągi jest zgodna z istniejącymi regułami konwersji typów danych. Więcej informacji o konwersjach typów danych można znaleźć w CAST i CONVERT (Transact-SQL).
Typ zwrotu zależy od typu argumentów. Ta tabela ilustruje odwzorowanie:
| Typ danych wejściowych | Typ wyjścia i długość |
|---|---|
| 1. Dowolny argument typu SQL-CLR, SQL-CLR UDT lub nvarchar(max) | nvarchar(max) |
| 2. W przeciwnym razie dowolny argument typu varbinary(max) lub varchar(max) |
varchar(max), chyba że jednym z parametrów jest nvarchar o dowolnej długości. W tym przypadku zwraca CONCAT wynik typu nvarchar(max). |
| 3. W przeciwnym razie każdy argument typu nvarchar o długości do 4000 znaków (nvarchar(<= 4000)) | nvarchar(<= 4000) |
| 4. We wszystkich pozostałych przypadkach | Dowolny argument typu varchar o długości do 8000 znaków (varchar(<= 8000)), chyba że jeden z parametrów jest nvarcharem o dowolnej długości. W takim przypadku zwraca CONCAT wynik typu nvarchar(max). |
Gdy CONCAT otrzymuje argumenty wejściowe nvarchar o długości <= 4000 znaków lub argumenty wejściowe varchar o długości <= 8000 znaków, niejawne konwersje mogą wpływać na długość wyniku. Inne typy danych mają różną długość po niejawnym przekształcaniu w ciągi tekstów. Na przykład int o wartości 14 ma długość ciągu równą 2, podczas gdy zmienność o wartości 1234.56789 ma długość ciągu 7 (1234.57). Dlatego połączenie tych dwóch wartości daje wynik o długości nie mniejszej niż 9 znaków.
Jeśli żaden z argumentów wejściowych nie ma obsługiwanego dużego typu obiektu (LOB), typ return skraca się do 8 000 znaków, niezależnie od typu return. To obcięcie oszczędza przestrzeń i wspiera efektywność generowania planów.
CONCAT może być wykonywany zdalnie na połączonym serwerze działającym na SQL Server 2012 (11.x) i nowszych wersjach. Dla starszych serwerów połączonych operacja odbywa CONCAT się lokalnie, po tym jak serwer powiązany zwróci wartości niepołączone.
Przykłady
A. Użyj CONCAT
SELECT CONCAT ('Happy ', 'Birthday ', 11, '/', '25') AS Result;
Oto zestaw wyników.
Result
--------------------
Happy Birthday 11/25
B. Użyj CONCAT z wartościami NULL
CREATE TABLE #temp (
emp_name NVARCHAR(200) NOT NULL,
emp_middlename NVARCHAR(200) NULL,
emp_lastname NVARCHAR(200) NOT NULL
);
INSERT INTO #temp
VALUES ('Name', NULL, 'Lastname');
SELECT CONCAT (emp_name, emp_middlename, emp_lastname) AS Result
FROM #temp;
Oto zestaw wyników.
Result
------------
NameLastname