Bagikan melalui


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.

Konvensi sintaks transact-SQL

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