Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik a következőkre: SQL Server 2017 (14.x) és későbbi verziók
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL analytics endpoint in Microsoft Fabric
Warehouse in Microsoft Fabric SQL
database in Microsoft Fabric
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. Elválasztja az összefűzött sztringértékeket az első függvényargumentumban megadott elválasztóval. (CONCAT_WS azt jelzi, elválasztóval összefűzve.)
Szintaxis
CONCAT_WS ( separator , argument1 , argument2 [ , argumentN ] ... )
Érvek
elválasztó
Bármilyen típusú kifejezés (karakter, nchar, nvarcharvagy varchar).
argumentum1, argumentum2 [ , argumentumN ]
Bármely sztringérték kifejezése. A CONCAT_WS 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_WS változó számú sztringargumentumot vesz fel, és egyetlen sztringbe fűzi (vagy összekapcsolja) őket. Elválasztja az összefűzött sztringértékeket az első függvényargumentumban megadott elválasztóval.
CONCAT_WS elválasztó argumentumot és legalább két másik sztringértékargumentumot igényel; ellenkező esetben CONCAT_WS hibát jelez.
CONCAT_WS az összes argumentumot implicit módon sztringtípusokká alakítja az összefűzés előtt.
A sztringekre való implicit átalakítás az adattípus-átalakításokra vonatkozó meglévő szabályokat követi. További információ a viselkedésről és az adattípus-átalakításokról: CONCAT (Transact-SQL).
NULL értékek kezelése
CONCAT_WS figyelmen kívül hagyja a SET CONCAT_NULL_YIELDS_NULL { ON | OFF } beállítást.
Ha CONCAT_WS az összes NULL értékkel rendelkező argumentumokat kap, akkor üres varchar(1) típusú sztringet ad vissza.
CONCAT_WS az összefűzés során figyelmen kívül hagyja a null értékeket, és nem adja hozzá az elválasztót a null értékek közé. Ezért CONCAT_WS képes tisztán kezelni az olyan sztringek összefűződését, amelyek "üres" értékeket tartalmazhatnak – például egy második címmezőt. További információ: B példa.
Ha egy forgatókönyv null értékeket tartalmaz elválasztóval elválasztva, vegye figyelembe az ISULL függvényt. További információ: C példa.
Példák
Egy. Értékek összefűzése elválasztóval
Ez a példa három oszlopot fűz össze a sys.databases táblából, és elválasztja az értékeket szóközökkel (-) körülvett kötőjellel.
SELECT CONCAT_WS(' - ', database_id, recovery_model_desc, containment_desc) AS DatabaseInfo
FROM sys.databases;
Itt van az eredményhalmaz.
DatabaseInfo
-----------------
1 - SIMPLE - NONE
2 - SIMPLE - NONE
3 - FULL - NONE
4 - SIMPLE - NONE
B. NULL értékek kihagyása
Ez a példa figyelmen kívül hagyja NULL argumentumlistában szereplő értékeket, és vesszőelválasztó értéket (,) használ.
SELECT CONCAT_WS(',', '1 Microsoft Way', NULL, NULL, 'Redmond', 'WA', 98052) AS Address;
Itt van az eredményhalmaz.
Address
--------------------------------
1 Microsoft Way,Redmond,WA,98052
C. CSV formátumú adatok létrehozása a táblából
Ez a példa egy vesszőelválasztó értéket (,) használ, és hozzáadja a kocsivissza karaktert CHAR(13) az eredményhalmaz vesszővel tagolt értékformátumában.
SELECT STRING_AGG(
CONCAT_WS(',', database_id, recovery_model_desc, containment_desc), CHAR(13)
) AS DatabaseInfo
FROM sys.databases;
Itt van az eredményhalmaz.
DatabaseInfo
-------------
1,SIMPLE,NONE
2,SIMPLE,NONE
3,FULL,NONE
4,SIMPLE,NONE
CONCAT_WS figyelmen kívül hagyja az oszlopok NULL értékeit. Tördelje be a null értékű oszlopot a ISNULL függvénnyel, és adjon meg egy alapértelmezett értéket. Például:
SELECT STRING_AGG(
CONCAT_WS(',', database_id, ISNULL(recovery_model_desc, ''), ISNULL(containment_desc, 'N/A')), CHAR(13)
) AS DatabaseInfo
FROM sys.databases;