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)
.