SQL Server 2012 CONCAT işlevi için değiştirme yaklaşımlarında NULL güvenli düşüş
SQL Server 2012 :
SELECT CONCAT(data1, data2)
PRE SQL 2012 (İki Çözüm) :
SELECT {fn CONCAT(ISNULL(data1, ''), ISNULL(data2, ''))}
SELECT ISNULL(CAST(data1 AS varchar(MAX)), '') + ISNULL(CAST(data2 AS varchar(MAX)), '')
Bu iki çözüm, @Martin Smith, @Svish ve @ vasin1987 dahil olmak üzere diğer posterler tarafından ortaya atılan birçok mükemmel cevabı ve uyarıları bir araya getiriyor.
Bu seçenekler , belirli işlenenlerle ilgili olarak operatörün değişen davranışını hesaba katarken güvenli işlem NULL
için ''
(boş dizgi) dönüştürmeye eklenir .NULL
+
Not ODBC Scaler fonksiyon ise çözelti 2 bağımsız değişken ile sınırlıdır +
operatör gerektiği gibi bir yaklaşım çok tartışmaya ölçeklenebilir.
Ayrıca @Swifty tarafından tanımlanan varsayılan boyutla ilgili olarak varchar
burada çözülen olası soruna da dikkat edin varchar(MAX)
.