NULL safe drop nas aproximações de substituição para a função CONCAT do SQL Server 2012
SQL Server 2012 :
SELECT CONCAT(data1, data2)
PRE SQL 2012 (duas soluções) :
SELECT {fn CONCAT(ISNULL(data1, ''), ISNULL(data2, ''))}
SELECT ISNULL(CAST(data1 AS varchar(MAX)), '') + ISNULL(CAST(data2 AS varchar(MAX)), '')
Essas duas soluções reúnem várias respostas excelentes e advertências levantadas por outros participantes, incluindo @Martin Smith, @Svish e @ vasin1987.
Essas opções somam-se NULL
à ''
conversão (string vazia) para NULL
manuseio seguro enquanto leva em consideração o comportamento variável do +
operador em relação a operandos específicos.
Observe que a solução ODBC Scaler Function é limitada a 2 argumentos, enquanto a abordagem do +
operador é escalonável para muitos argumentos conforme necessário.
Observe também o possível problema identificado por @Swifty em relação ao varchar
tamanho padrão aqui corrigido por varchar(MAX)
.