Aracılığıyla paylaş


CONCAT (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnaliz Platformu Sistemi (PDW)Microsoft Fabric'teki SQL analiz uç noktasıMicrosoft Fabric'teki ambarMicrosoft Fabric'teki SQL veritabanı

Bu işlev, iki veya daha fazla dize değerinin uçtan uca bir şekilde birleştirilmesinden veya birleştirilmesinden kaynaklanan bir dize döndürür.

Uyarı

Birleştirme sırasında ayırıcı değer eklemek için CONCAT_WS kullanın.

Transact-SQL söz dizimi kuralları

Sözdizimi

CONCAT ( argument1 , argument2 [ , argumentN ] ... )

Arguments

argüman1, argüman2 [ , argümanN ]

Herhangi bir dize değerinin ifadesi. CONCAT işlevi en az iki bağımsız değişken gerektirir ve en fazla 254 bağımsız değişken gerektirir.

Dönüş türleri

Uzunluğu ve türü girişe bağlı olan bir dize değeri.

Açıklamalar

CONCAT değişken sayıda dize bağımsız değişkeni alır ve bunları tek bir dizede birleştirir (veya birleştirir). En az iki giriş değeri gerektirir; aksi takdirde CONCAT bir hata yaratır. CONCAT birleştirmeden önce tüm bağımsız değişkenleri örtük olarak dize türlerine dönüştürür. CONCAT boş değerleri örtük olarak boş dizelere dönüştürür. Tüm CONCAT değerlere sahip bağımsız değişkenler alırsa NULL, varchar(1) türünde boş bir dize döndürür. Dizelere örtük dönüştürme, veri türü dönüştürmeleri için mevcut kurallara uyar. Veri tipi dönüşümleri hakkında daha fazla bilgi için bkz. CAST ve CONVERT (Transact-SQL).

Dönüş türü, argümanların türüne bağlıdır. Bu tablo eşlemeyi göstermektedir:

Giriş türü Çıkış türü ve uzunluk
1. SQL-CLR sistem türü, SQL-CLR UDT veya nvarchar(max) argümanı nvarchar(max)
2. Aksi takdirde, varbinary(max) veya varchar(max) tipindeki herhangi bir argüman varchar(max), parametrelerden biri herhangi bir uzunlukta nvarchar değilse. Bu durumda, CONCATnvarchar(max) tipinde bir sonuç döndürür.
3. Aksi takdirde, 4000 karaktere kadar olan herhangi bir nvarchar tipi argüman (nvarchar(<= 4000)) nvarchar(<= 4000)
4. Diğer tüm durumlarda 8000 karaktere kadar olan varchar tipi herhangi bir argüman (varchar(<= 8000)), parametrelerden biri herhangi bir uzunlukta nvarchar değilse. Bu durumda, CONCATnvarchar(max) tipinde bir sonuç döndürür.

CONCAT Uzunluk <= 4000 karakter olan nvarchar giriş argümanları veya uzunluk <= 8000 karakter olan varchar giriş argümanları alıldığında, örtük dönüşümler sonucun uzunluğunu etkileyebilir. Diğer veri türleri, örtük olarak dizelere dönüştürüldüğünde farklı uzunluklara sahiptir. Örneğin, değeri 14 olan bir int'nin dizisi 2 iken, değeri 1234.56789 olan bir float'ın dizisi 7 (1234.57). Bu nedenle, bu iki değerin birleştirilmesi, uzunluğu en az 9 karakter olan bir sonuç verir.

Giriş argümanlarının hiçbiri desteklenen büyük nesne (LOB) tipine sahip değilse, dönüş tipi dönüş türü ne olursa olsun 8.000 karaktere kadar kısaltılır. Bu kesinti alanı korur ve plan oluşturma verimliliğini destekler.

CONCAT SQL Server 2012 (11.x) ve daha sonraki sürümleri çalıştıran bağlı bir sunucuda uzaktan çalıştırılabilir. Eski bağlı sunucular için, CONCAT işlem yerel olarak gerçekleşir; bağlantılı sunucu bağlanmamış değerleri döndürdükten sonra.

Örnekler

A. CONCAT kullanın

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

Sonuç kümesi aşağıdadır.

Result
--------------------
Happy Birthday 11/25

B. NULL değerlerle CONCAT kullanın

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;

Sonuç kümesi aşağıdadır.

Result
------------
NameLastname