CONCAT (T-SQL)
Berlaku untuk: Titik akhir analitik SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Platform System (PDW) SQL di Microsoft Fabric Warehouse di Microsoft Fabric
Fungsi ini mengembalikan string yang dihasilkan dari perangkaian, atau gabungan, dari dua atau beberapa nilai string secara end-to-end.
Catatan
Untuk menambahkan nilai pemisahan selama penggandaan, gunakan CONCAT_WS.
Sintaks
CONCAT ( argument1 , argument2 [ , argumentN ] ... )
Argumen
argumen1, argumen2 [ , argumenN ]
Ekspresi nilai string apa pun. Fungsi ini CONCAT
memerlukan setidaknya dua argumen, dan tidak lebih dari 254 argumen.
Jenis yang dikembalikan
Nilai string yang panjang dan jenisnya bergantung pada input.
Keterangan
CONCAT
mengambil jumlah variabel argumen string dan menggabungkannya (atau menggabungkan) ke dalam satu string. Ini membutuhkan minimal dua nilai input; jika tidak, CONCAT
menimbulkan kesalahan. CONCAT
secara implisit mengonversi semua argumen menjadi jenis string sebelum penggalian. CONCAT
secara implisit mengonversi nilai null menjadi string kosong. Jika CONCAT
menerima argumen dengan semua NULL
nilai, maka akan mengembalikan string kosong jenis varchar(1). Konversi implisit ke string mengikuti aturan yang ada untuk konversi jenis data. Untuk informasi selengkapnya tentang konversi jenis data, lihat CAST dan CONVERT (Transact-SQL).
Jenis pengembalian tergantung pada jenis argumen. Tabel ini mengilustrasikan pemetaan:
Jenis input | Jenis dan panjang output |
---|---|
1. Argumen apa pun dari jenis sistem SQL-CLR, UDT SQL-CLR, atau nvarchar(maks) | nvarchar(maks) |
2. Jika tidak, argumen jenis varbinary(maks) atau varchar(maks) | varchar(max), kecuali salah satu parameter adalah nvarchar dengan panjang berapa pun. Dalam hal ini, CONCAT mengembalikan hasil jenis nvarchar(maks). |
3. Jika tidak, argumen jenis nvarchar hingga 4000 karakter (nvarchar(<= 4000)) | nvarchar(<= 4000) |
4. Dalam semua kasus lainnya | argumen jenis varchar hingga 8000 karakter (varchar(<= 8000)), kecuali salah satu parameter adalah nvarchar dengan panjang berapa pun. Dalam hal ini, CONCAT mengembalikan hasil jenis nvarchar(maks). |
Saat CONCAT
menerima argumen input nvarchar panjang <= 4000 karakter, atau argumen input varchar panjang <= 8000 karakter, konversi implisit dapat memengaruhi panjang hasil. Jenis data lain memiliki panjang yang berbeda saat dikonversi secara implisit ke string. Misalnya, int dengan nilai 14
memiliki panjang string 2, sedangkan float dengan nilai 1234.56789
memiliki panjang string 7 (1234.57
). Oleh karena itu, perangkaian kedua nilai ini mengembalikan hasil dengan panjang tidak kurang dari 9 karakter.
Jika tidak ada argumen input yang memiliki jenis objek besar (LOB) yang didukung, maka jenis pengembalian memotong panjangnya menjadi 8.000 karakter, terlepas dari jenis pengembaliannya. Pemotongan ini mempertahankan ruang dan mendukung efisiensi pembuatan rencana.
CONCAT
dapat dijalankan dari jarak jauh pada server tertaut yang menjalankan SQL Server 2012 (11.x) dan versi yang lebih baru. Untuk server tertaut yang lebih lama, CONCAT
operasi akan terjadi secara lokal, setelah server tertaut mengembalikan nilai yang tidak digabungkan.
Contoh
J. Gunakan CONCAT
SELECT CONCAT ('Happy ', 'Birthday ', 11, '/', '25') AS Result;
Berikut set hasilnya.
Result
--------------------
Happy Birthday 11/25
B. Menggunakan CONCAT dengan nilai 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;
Berikut set hasilnya.
Result
------------
NameLastname