Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server 2017 (14.x) dan versi
yang lebih baru Azure SQL Database
AzureSQL Managed Instance
AzureSynapse Analytics
Titik akhir analitik SQL di Microsoft Fabric
Warehouse di database Microsoft FabricSQL di Microsoft Fabric
Fungsi ini mengembalikan string yang dihasilkan dari perangkaian, atau gabungan, dari dua atau beberapa nilai string secara end-to-end. Ini memisahkan nilai string yang digabungkan dengan pemisah yang ditentukan dalam argumen fungsi pertama. (CONCAT_WS menunjukkan menggabungkan dengan pemisah.)
Sintaks
CONCAT_WS ( separator , argument1 , argument2 [ , argumentN ] ... )
Argumen
pemisah
Ekspresi jenis karakter apa pun (karakter, nchar, nvarchar, atau varchar).
argumen1, argumen2 [ , argumenN ]
Ekspresi nilai string apa pun. Fungsi ini CONCAT_WS memerlukan setidaknya dua argumen, dan tidak lebih dari 254 argumen.
Jenis yang dikembalikan
Nilai string yang panjang dan jenisnya bergantung pada input.
Keterangan
CONCAT_WS mengambil jumlah variabel argumen string dan menggabungkannya (atau menggabungkan) ke dalam satu string. Ini memisahkan nilai string yang digabungkan dengan pemisah yang ditentukan dalam argumen fungsi pertama.
CONCAT_WS memerlukan argumen pemisah dan minimal dua argumen nilai string lainnya; jika tidak, CONCAT_WS menimbulkan kesalahan.
CONCAT_WS secara implisit mengonversi semua argumen menjadi jenis string sebelum penggalian.
Konversi implisit ke string mengikuti aturan yang ada untuk konversi jenis data. Untuk informasi selengkapnya tentang perilaku dan konversi jenis data, lihat CONCAT (Transact-SQL).
Perlakuan nilai NULL
CONCAT_WS
SET CONCAT_NULL_YIELDS_NULL { ON | OFF } mengabaikan pengaturan.
Jika CONCAT_WS menerima argumen dengan semua NULL nilai, maka akan mengembalikan string kosong jenis varchar(1).
CONCAT_WS mengabaikan nilai null selama perangkaian, dan tidak menambahkan pemisah di antara nilai null. Oleh karena itu, CONCAT_WS dapat menangani perangkaian string dengan bersih yang mungkin memiliki nilai "kosong" - misalnya, bidang alamat kedua. Untuk informasi selengkapnya, lihat Contoh B.
Jika skenario melibatkan nilai null yang dipisahkan oleh pemisah, pertimbangkan fungsi ISNULL . Untuk informasi selengkapnya, lihat Contoh C.
Contoh
J. Menggabungkan nilai dengan pemisah
Contoh ini menggabungkan tiga kolom dari sys.databases tabel, memisahkan nilai dengan tanda hubung yang dikelilingi oleh spasi (-).
SELECT CONCAT_WS(' - ', database_id, recovery_model_desc, containment_desc) AS DatabaseInfo
FROM sys.databases;
Berikut set hasilnya.
DatabaseInfo
-----------------
1 - SIMPLE - NONE
2 - SIMPLE - NONE
3 - FULL - NONE
4 - SIMPLE - NONE
B. Lewati nilai NULL
Contoh ini mengabaikan NULL nilai dalam daftar argumen, dan menggunakan nilai pemisah koma (,).
SELECT CONCAT_WS(',', '1 Microsoft Way', NULL, NULL, 'Redmond', 'WA', 98052) AS Address;
Berikut set hasilnya.
Address
--------------------------------
1 Microsoft Way,Redmond,WA,98052
C. Hasilkan data berformat CSV dari tabel
Contoh ini menggunakan nilai pemisah koma (,), dan menambahkan karakter pengembalian pengangkutan CHAR(13) dalam format nilai yang dipisahkan koma dari kumpulan hasil.
SELECT STRING_AGG(
CONCAT_WS(',', database_id, recovery_model_desc, containment_desc), CHAR(13)
) AS DatabaseInfo
FROM sys.databases;
Berikut set hasilnya.
DatabaseInfo
-------------
1,SIMPLE,NONE
2,SIMPLE,NONE
3,FULL,NONE
4,SIMPLE,NONE
CONCAT_WS
NULL mengabaikan nilai dalam kolom. Bungkus kolom nullable dengan ISNULL fungsi , dan berikan nilai default. Contohnya:
SELECT STRING_AGG(
CONCAT_WS(',', database_id, ISNULL(recovery_model_desc, ''), ISNULL(containment_desc, 'N/A')), CHAR(13)
) AS DatabaseInfo
FROM sys.databases;