Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2017 (14.x) ve sonraki sürümler
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL analytics endpoint in Microsoft Fabric
Warehouse SQL
databasein Microsoft Fabric
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. Bu birleştirilmiş dize değerlerini ilk işlev bağımsız değişkeninde belirtilen sınırlayıcıyla ayırır. (CONCAT_WSayırıcı ile birleştirmeyi gösterir.)
Sözdizimi
CONCAT_WS ( separator , argument1 , argument2 [ , argumentN ] ... )
Arguments
ayırıcı
Herhangi bir karakter türünün ifadesi (char, nchar, nvarchar veya varchar).
argüman1, argüman2 [ , argümanN ]
Herhangi bir dize değerinin ifadesi.
CONCAT_WS 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_WS değişken sayıda dize bağımsız değişkeni alır ve bunları tek bir dizede birleştirir (veya birleştirir). Bu birleştirilmiş dize değerlerini ilk işlev bağımsız değişkeninde belirtilen sınırlayıcıyla ayırır.
CONCAT_WS bir ayırıcı bağımsız değişken ve en az iki diğer dize değeri bağımsız değişkeni gerektirir; aksi takdirde, CONCAT_WS bir hata oluşturur.
CONCAT_WS birleştirmeden önce tüm bağımsız değişkenleri örtük olarak dize türlerine dönüştürür.
Dizelere örtük dönüştürme, veri türü dönüştürmeleri için mevcut kurallara uyar. Davranış ve veri türü dönüştürmeleri hakkında daha fazla bilgi için bkz. ARALIKBİRLEŞTRİ (Transact-SQL).
NULL değerlerin işlenmesi
CONCAT_WS
SET CONCAT_NULL_YIELDS_NULL { ON | OFF } ayarı yoksayar.
Tüm CONCAT_WS değerlere sahip bağımsız değişkenler alırsa NULL, varchar(1) türünde boş bir dize döndürür.
CONCAT_WS birleştirme sırasında null değerleri yoksayar ve null değerler arasına ayırıcı eklemez. Bu nedenle, CONCAT_WS "boş" değerlere (örneğin, ikinci bir adres alanı) sahip olabilecek dizelerin birleştirmesini temiz bir şekilde işleyebilir. Daha fazla bilgi için bkz. Örnek B.
Bir senaryoda sınırlayıcıyla ayrılmış null değerler varsa , ISNULL işlevini göz önünde bulundurun. Daha fazla bilgi için bkz . Örnek C.
Örnekler
A. Değerleri ayırıcı ile birleştirme
Bu örnek, tablodaki sys.databases üç sütunu birleştirir ve değerleri boşluklarla (- ) çevrelenmiş bir kısa çizgiyle ayırır.
SELECT CONCAT_WS(' - ', database_id, recovery_model_desc, containment_desc) AS DatabaseInfo
FROM sys.databases;
Sonuç kümesi aşağıdadır.
DatabaseInfo
-----------------
1 - SIMPLE - NONE
2 - SIMPLE - NONE
3 - FULL - NONE
4 - SIMPLE - NONE
B. NULL değerlerini atla
Bu örnek, bağımsız değişkenler listesindeki değerleri yoksayar NULL ve virgül ayırıcı değeri (, ) kullanır.
SELECT CONCAT_WS(',', '1 Microsoft Way', NULL, NULL, 'Redmond', 'WA', 98052) AS Address;
Sonuç kümesi aşağıdadır.
Address
--------------------------------
1 Microsoft Way,Redmond,WA,98052
C. Tablodan CSV biçimli veri oluşturma
Bu örnekte virgül ayırıcı değeri (), kullanılır ve satır başı karakteri CHAR(13) , sonuç kümesinin virgülle ayrılmış değerler biçiminde eklenir.
SELECT STRING_AGG(
CONCAT_WS(',', database_id, recovery_model_desc, containment_desc), CHAR(13)
) AS DatabaseInfo
FROM sys.databases;
Sonuç kümesi aşağıdadır.
DatabaseInfo
-------------
1,SIMPLE,NONE
2,SIMPLE,NONE
3,FULL,NONE
4,SIMPLE,NONE
CONCAT_WS
NULL sütunlardaki değerleri yoksayar. null atanabilir bir sütunu işleviyle sarmalar ISNULL ve varsayılan bir değer sağlar. Örneğin:
SELECT STRING_AGG(
CONCAT_WS(',', database_id, ISNULL(recovery_model_desc, ''), ISNULL(containment_desc, 'N/A')), CHAR(13)
) AS DatabaseInfo
FROM sys.databases;