Megosztás a következőn keresztül:


CONCAT (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

Ez a függvény egy sztringet ad vissza, amely két vagy több sztringérték összefűzésével vagy összefűzésével végződik.

Megjegyzés:

A összekötés során elválasztó érték hozzáadásához használd a CONCAT_WS.

Transact-SQL szintaxis konvenciók

Szemantika

CONCAT ( argument1 , argument2 [ , argumentN ] ... )

Arguments

argumentum1, argumentum2 [ , argumentumN ]

Bármely sztringérték kifejezése. A CONCAT függvényhez legalább két argumentum, legfeljebb 254 argumentum szükséges.

Visszatérési típusok

Olyan sztringérték, amelynek hossza és típusa a bemenettől függ.

Megjegyzések

CONCAT változó számú sztringargumentumot vesz fel, és egyetlen sztringbe fűzi (vagy összekapcsolja) őket. Minimum két bemeneti értéket igényel; Ellenkező esetben CONCAT hibát okoz. CONCAT az összes argumentumot implicit módon sztringtípusokká alakítja az összefűzés előtt. CONCAT implicit módon átalakítja a nullértékeket üres stringekre. Ha CONCAT az összes NULL értékkel rendelkező argumentumokat kap, akkor üres varchar(1) típusú sztringet ad vissza. A sztringekre való implicit átalakítás az adattípus-átalakításokra vonatkozó meglévő szabályokat követi. További információért az adattípus-átalakításokról lásd: CAST és CONVERT (Transact-SQL).

A visszaküldés típusa az argumentumok típusától függ. Ez a táblázat illusztrálja a leképezést:

Bemeneti típus Kimeneti típus és hossz
1. Bármilyen SQL-CLR rendszertípusú, SQL-CLR UDT vagy nvarchar(max) érv nvarchar(max)
2. Egyébként bármilyen varbináris (max) vagy varchar(max) típusú argumentum varchar(max), hacsak az egyik paraméter bármely hosszúságú nvarchar . Ebben az esetben CONCATnvarchar(max) típusú eredményt adunk vissza.
3. Ellenkező esetben bármely nvarchar típusú érv legfeljebb 4000 karakterből áll (nvarchar(<= 4000)) nvarchar(<= 4000)
4. Minden más esetben bármely Varchar típusú argumentum, amely legfeljebb 8000 karakterből áll (varchar(<= 8000)), hacsak az egyik paraméter bármilyen hosszúságú nvarchar . Ebben az esetben CONCATnvarchar(max) típusú eredményt ad.

Amikor CONCATnvarchar bemeneti argumentumokat kapunk a hossz <= 4000 karakterrel, vagy a varchar bemeneti argumentumokat a hossz <= 8000 karakterrel, implicit átváltások befolyásolhatják az eredmény hosszát. Más adattípusok eltérő hosszúságúak, ha implicit módon láncsorokká alakítják őket. Például egy értékű int14 sorhossza 2, míg egy értékű1234.56789 float sorhossza 7 (1234.57). Ezért e két érték összekötése nem kevesebb, mint 9 karakter hosszú eredményt eredményez.

Ha egyik bemeneti argumentum sem rendelkezik támogatott nagy objektum (LOB) típussal, akkor a visszaküldési típus 8 000 karakterre csökken, függetlenül a visszaküldés típusától. Ez a csorítás megőrzi a helyet és támogatja a terv generálásának hatékonyságát.

CONCAT távolról futtatható egy SQL Server 2012 (11.x) és újabb verziókat futtató összekapcsolt szerveren. Régebbi összekapcsolt szervereknél a CONCAT művelet helyben történik, miután a csatlakoztatott szerver visszaadja a nem összekapcsolt értékeket.

Példák

A. Használd a CONCAT-ot

SELECT CONCAT ('Happy ', 'Birthday ', 11, '/', '25') AS Result;

Itt van az eredmények összessége.

Result
--------------------
Happy Birthday 11/25

B. Használj CONCAT-ot NULL értékekkel

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;

Itt van az eredmények összessége.

Result
------------
NameLastname