CONCAT (SQL Bertransaksi)

Berlaku untuk:yes SQL Server (semua versi yang didukung) YesAzure SQL Database YesAzure SQL Managed Instance yesAzure Synapse Analytics Analytics yesPlatform System (PDW)

Fungsi ini mengembalikan string yang dihasilkan dari perangkaian, atau gabungan, dari dua nilai string atau lebih secara end-to-end. (Untuk menambahkan nilai pemisahan selama perangkaian, lihat CONCAT_WS.)

Topic link iconKonvensi Sintaksis T-SQL

Sintaks

CONCAT ( string_value1, string_value2 [, string_valueN ] )  

Catatan

Untuk melihat sintaks transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

string_value
Nilai string untuk digabungkan ke nilai lainnya. Fungsi ini CONCAT memerlukan setidaknya dua argumen string_value , dan tidak lebih dari 254 argumen string_value .

Tipe yang dikembalikan

string_value
Nilai string yang panjang dan jenisnya bergantung pada input.

Keterangan

CONCAT mengambil jumlah variabel argumen string dan menggabungkannya (atau menggabungkannya) menjadi satu string. Ini membutuhkan minimal dua nilai input; jika tidak, CONCAT akan menimbulkan kesalahan. CONCAT secara implisit mengonversi semua argumen menjadi jenis string sebelum perangkaian. CONCAT secara implisit mengonversi nilai null menjadi string kosong. Jika CONCAT menerima argumen dengan semua nilai NULL , maka akan mengembalikan string kosong dari jenis varchar(1). Konversi implisit ke string mengikuti aturan yang ada untuk konversi jenis data. Lihat CAST dan CONVERT (Transact-SQL) untuk informasi selengkapnya tentang konversi jenis data.

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(max)
nvarchar(maks)
2. Jika tidak, argumen jenis apa pun

varbinary(max)

atau

varchar(max)
varchar(max), kecuali salah satu parameter adalah nvarchar dengan panjang berapa pun. Dalam hal ini, CONCAT mengembalikan hasil jenis nvarchar(max).
3. Jika tidak, argumen jenis nvarchar paling banyak 4000 karakter

( nvarchar(<= 4000) )
nvarchar(<= 4000)
4. Dalam semua kasus lainnya varchar(<= 8000) ( varchar paling banyak 8000 karakter) kecuali salah satu parameter adalah nvarchar dengan panjang berapa pun. Dalam hal ini, CONCAT mengembalikan hasil jenis nvarchar(max).

Ketika 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 ketika secara implisit dikonversi ke string. Misalnya, int (14) memiliki panjang string 12, sedangkan float memiliki panjang 32. Oleh karena itu, perangkaian dua bilangan bulat mengembalikan hasil dengan panjang tidak kurang dari 24.

Jika tidak ada argumen input yang memiliki jenis objek besar (LOB) yang didukung, maka jenis pengembalian dipotong menjadi 8000 karakter, terlepas dari jenis pengembaliannya. Pemotongan ini mempertahankan ruang dan mendukung efisiensi pembuatan rencana.

Fungsi CONCAT dapat dijalankan dari jarak jauh pada server tertaut versi SQL Server 2012 (11.x) ke atas. Untuk server tertaut yang lebih lama, operasi CONCAT akan terjadi secara lokal, setelah server yang ditautkan mengembalikan nilai yang tidak digabungkan.

Contoh

A. Menggunakan CONCAT

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

Berikut adalah tataan hasil.

Result  
-------------------------  
Happy Birthday 11/25  
  
(1 row(s) affected)  

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 adalah hasil yang ditetapkan.

Result  
------------------  
NameLastname  
  
(1 row(s) affected)  

Lihat juga

CONCAT_WS (SQL Bertransaksi)
FORMATMESSAGE (SQL bertransaksi)
QUOTENAME (SQL Bertransaksi)
REPLACE (Transact-SQL)
TERBALIK (SQL bertransaksi)
STRING_AGG (T-SQL)
STRING_ESCAPE (SQL Bertransaksi)
STUFF (Transact-SQL)
TERJEMAHKAN (SQL Bertransaksi)
Fungsi String (SQL Transact)