Caída segura NULL en aproximaciones de reemplazo para la función CONCAT de SQL Server 2012
SQL Server 2012 :
SELECT CONCAT(data1, data2)
PRE SQL 2012 (dos soluciones) :
SELECT {fn CONCAT(ISNULL(data1, ''), ISNULL(data2, ''))}
SELECT ISNULL(CAST(data1 AS varchar(MAX)), '') + ISNULL(CAST(data2 AS varchar(MAX)), '')
Estas dos soluciones recopilan varias respuestas excelentes y advertencias planteadas por otros carteles, incluidos @Martin Smith, @Svish y @ vasin1987.
Estas opciones se suman NULL
a la ''
conversión (cadena vacía) para un NULL
manejo seguro al tiempo que tienen en cuenta el comportamiento variable del +
operador en relación con operandos específicos.
Tenga en cuenta que la solución ODBC Scaler Function está limitada a 2 argumentos, mientras que el enfoque del +
operador es escalable a muchos argumentos según sea necesario.
Tenga en cuenta también el problema potencial identificado por @Swifty con respecto al varchar
tamaño predeterminado resuelto aquí por varchar(MAX)
.