Aracılığıyla paylaş


(Bitiştirme dize) + (Transact-sql)

İki veya daha fazla karakter veya ikili dize, sütunları veya dizeler ve sütun adları bir ifade (bir dize işleci) bir birleşimini birleştirir dize ifadesi bir operatör.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

expression + expression

Bağımsız değişkenler

  • expression
    Herhangi bir geçerli ifade herhangi bir veri karakter ve ikili veri türü kategori dışında türleri image, ntext, ya textveri türlerini. Her iki ifade aynı veri türü olmalıdır veya bir ifadenin diğer ifade veri türüne örtük olarak dönüştürülebilir gerekir.

    Karakter veri için açık bir dönüştürme Ikili dizeleri ve karakterler arasında ikili dizeleri bitiştirmek zaman kullanılmalıdır. Aşağıdaki örnek, convert veya cast, ikili birleştirme ile ne zaman kullanılmalıdır 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))
    
    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şken veri türü önceliği en yüksek döner. Daha fazla bilgi için, bkz. Veri türü önceliği (Transact-sql).

Açıklamalar

+ Zaman zaman null veya bilinmeyen değerleri ile çalışır daha boş, sıfır uzunluklu bir dize ile çalışır (String birleştirme) işleci farklı davranır. İki tek tırnak işaretleri olmadan tırnak işaretleri içindeki herhangi bir karakter olarak sıfır uzunlukta karakter dizesi belirtilebilir. Sıfır uzunluklu bir ikili dize olmadan onaltılık sabitinde belirtilen bayt değerleri 0 x olarak belirtilebilir. Her zaman bir sıfır uzunluklu dize Bitiştirme iki belirtilen dizeyi birleştirir. Null değeri Dizelerle çalışırken, birleştirme sonucu oturum ayarlarına bağlıdır. Sadece boş değerler üzerinde gerçekleştirilen aritmetik işlemleri gibi bir bilinen değer null değeri eklendiğinde sonuç genellikle bilinmeyen bir değeri, null değeri ile gerçekleştirilen dize birleştirme işlemi de null bir sonuç üretmek gerekir. Ancak, geçerli oturum için CONCAT_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).

Dize Bitiştirme sonucu 8.000 bayt sınırını aşarsa, sonucu kesirli kısmı atılır. Ancak, en az bir birleştirilmiş dizeleri büyük değer türü ise, kesme gerçekleşmez.

Örnekler

A.Dize birleştirme kullanma

Tek bir sütun sütun başlığı altında aşağıdaki örnek oluşturur Nameardından bir virgül, tek boşluk ve sonra kişinin ilk adını kişinin soyadı birden çok karakter sütunlarından. Artan, alfabetik sırayla Soyadı ve sonra adı sonuç kümesidir.

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

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

B.Sayısal ve Tarih veri türleri birleştirme

Aşağıdaki örnek CONVERTişlevi bir arada numericve dateveri türlerini.

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

USE AdventureWorks2012;
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 dize birleştirme kullanma

Aşağıdaki örnek Soyadı ve başkan yardımcıları ilk ilk görüntülenecek bir uzun dize biçiminde birden fazla dizesini birleştirir Adventure Works Cycles. Virgül, sonra soyadı ve bir süre sonra ilk ilk eklenir.

USE AdventureWorks2012;
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

USE AdventureWorks2012;
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)

Ayrıca bkz.

Başvuru

alter veritabanı (Transact-sql)

CAST ve CONVERT (Transact-SQL)

Veri Türleri (Transact-SQL)

Ifadeler (Transact-sql)

Yerleşik İşlevler (Transact-SQL)

İşleçler (Transact-sql)

select (Transact-sql)

Deyimiyle (Transact-sql) bırak

+= (Dize birleştirme) (Transact-sql)

Kavramlar

Veri türü dönüştürme (veritabanı altyapısı)