NULL безопасное падение в приближении замены для функции CONCAT в SQL Server 2012
SQL Server 2012 :
SELECT CONCAT(data1, data2)
PRE SQL 2012 (два решения) :
SELECT {fn CONCAT(ISNULL(data1, ''), ISNULL(data2, ''))}
SELECT ISNULL(CAST(data1 AS varchar(MAX)), '') + ISNULL(CAST(data2 AS varchar(MAX)), '')
Эти два решения объединяют несколько отличных ответов и предостережений, высказанных другими авторами, включая @Martin Smith, @Svish и @ vasin1987.
Эти параметры добавляют NULLк приведению ''(пустая строка) для безопасной NULLобработки с учетом различного поведения +оператора, относящегося к конкретным операндам.
Обратите внимание, что решение ODBC Scaler Function ограничено двумя аргументами, тогда как +операторный подход масштабируется до многих аргументов по мере необходимости.
Также обратите внимание на потенциальную проблему, выявленную @Swifty относительно varcharразмера по умолчанию, исправляемого здесь varchar(MAX).