Aracılığıyla paylaş


+ (Dize Birleştirme) (Transact-SQL)

Bir işleç iki ya da daha fazla karakter veya ikili dize, sütunları veya bir ifade (bir dizeişleç) içine dizeler ve sütun adlarının birleşimi birleştirir bir dizeifade .

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

expression + expression

Bağımsız değişkenler

  • expression
    Herhangi bir geçerli ifade herhangi bir veri biri karakter ve ikili veri türü kategori dışında türleri image, ntext, veya text veri türü.Her iki ifade, aynı veri türünde olmalı veya bir ifade diğer ifadeveri türüne örtülü olarak dönüştürülmesi mümkün olmalıdır.

    İkili dizeleri ve karakterler arasında ikili dizeleri bitiştirme açık dönüştürme karakter verileri için kullanılmalıdır.Aşağıdaki örnek, convert veya cast, ikili birleştirme ne zaman kullanılmalı ve ne zaman convert veya cast, kullanılacak yok gösterir.

    DECLARE @mybin1 varbinary(5), @mybin2 varbinary(5)
    SET @mybin1 = 0xFF
    SET @mybin2 = 0xA5
    -- No CONVERT or CAST function is required because this example 
    -- concatenates two binary strings.
    SELECT @mybin1 + @mybin2
    -- A CONVERT or CAST function is required because this example
    -- concatenates two binary strings plus a space.
    SELECT CONVERT(varchar(5), @mybin1) + ' ' 
       + CONVERT(varchar(5), @mybin2)
    -- Here is the same conversion using CAST.
    SELECT CAST(@mybin1 AS varchar(5)) + ' ' 
       + CAST(@mybin2 AS varchar(5))
    

Sonuç türleri

Bağımsız değişkenin veri türü önceliği en yüksek olan döndürür.Daha fazla bilgi için, bkz. Veri türü önceliği (Transact-SQL).

Açıklamalar

+ (String birleştirme) işleç davranır farklı zaman zaman null ya da bilinmeyen değerleri ile çalışır'den bir boş, sıfır uzunluklu dize ile çalışır.Sıfır uzunlukta karakter dize , iki tek tırnak işaretleri olmadan tırnak işaretleri içindeki herhangi bir karakter olarak belirtilebilir.Sıfır uzunluklu ikili dize 0 x onaltılık sabitiçinde belirtilen herhangi bir bayt değeri olmadan belirtilebilir.Her zaman bir sıfır uzunluklu dize bitiştirme iki belirtilen dizeyi birleştirir.null değer içeren dizeleri ile çalışırken, birleştirme sonucu oturum ayarlarına bağlıdır.Yalnızca null değerleri üzerinde gerçekleştirilen aritmetik işlemleri gibi null bir değer eklendiğinde bir bilinen değer sonuç genellikle bilinmeyen bir değeri, null değeri ile gerçekleştirilen bir dizebirleştirme işlemi de null bir sonuç üretir. Ancak geçerli oturumCONCAT_NULL_YIELDS_NULL ayarı değiştirerek bu davranışı değiştirebilirsiniz.Daha fazla bilgi için, bkz. set CONCAT_NULL_YIELDS_NULL (Transact-SQL).

Dizeleri birleştirme sonucu 8.000 bayt sınırını aşarsa, sonucu kesirli kısmı atılır.Ancak, birleştirilmiş dizeleri en az bir büyük değer türü ise, kesme oluşmaz.

Örnekler

A.dizebirleştirmekullanma

Aşağıdaki örnek sütun başlığı altında tek bir sütun oluşturur Name birden çok karakter kişinin Soyadı sütunları ardından bir virgül, tek bir boşluk ve ardından adı kişi.sonuç kümesi Soyadı ve sonra adı göre artan, alfabetik sırada kümesidir.

USE AdventureWorks2008R2;
GO
SELECT (LastName + ', ' + FirstName) AS Name
FROM Person.Person
ORDER BY LastName ASC, FirstName ASC;

B.Birleşen tarih ve sayısal veri türleri

Aşağıdaki örnek CONVERT işlev bir arada numeric ve date veri türü.

USE AdventureWorks2008R2;
GO
SELECT 'The order is due on ' + CONVERT(varchar(12), DueDate, 101)
FROM Sales.SalesOrderHeader
WHERE SalesOrderID = 50001;
GO

Sonuç kümesi buradadır.

------------------------------------------------

The order is due on 04/23/2007

(1 row(s) affected)

C.Birden çok dizebirleştirmekullanma

Aşağıdaki örnek Soyadı ve at vice presidents'ın ilk ilk görüntülenecek bir uzun dize oluşturmak için birden çok dizeyibirbirine Adventure Works Cycles.Virgül, soyadını ve bir süre sonra ilk ilk sonra eklenir.

USE AdventureWorks2008R2;
GO
SELECT (LastName + ',' + SPACE(1) + SUBSTRING(FirstName, 1, 1) + '.') AS Name, e.JobTitle
FROM Person.Person AS p
    JOIN HumanResources.Employee AS e
    ON p.BusinessEntityID = e.BusinessEntityID
WHERE e.JobTitle LIKE 'Vice%'
ORDER BY LastName ASC;
GO

Sonuç kümesi buradadır.

Name               Title

-------------      ---------------

Duffy, T.          Vice President of Engineering

Hamilton, J.       Vice President of Production

Welcker, B.        Vice President of Sales

(3 row(s) affected)