studio - ¿Cómo uso la función CONCAT en SQL Server 2008 R2?
concatenar strings sql server 2008 (6)
CONCAT, como se dijo, no es compatible con SQL Server 2012. Sin embargo, puede concatenar simplemente utilizando el operador + como se sugiere. Pero cuidado, este operador arrojará un error si el primer operando es un número, ya que piensa que se agregará y no se concatenará. Para resolver este problema solo agregue '''' al frente. Por ejemplo
someNumber + ''someString'' + .... + lastVariableToConcatenate
levantará un error PERO '''' + someNumber + ''someString'' + ......
funcionará bien.
Además, si hay dos números para concatenar, asegúrese de agregar un '''' entre ellos, como
.... + someNumber + '''' + someOtherNumber + .....
Estaba buscando una función CONCAT
en SQL Server 2008 R2. Encontré el enlace para esta función . Pero cuando uso esta función, aparece el siguiente error:
Msg 195, nivel 15, estado 10, línea 7
''CONCAT'' no es un nombre de función incorporado reconocido.
¿ CONCAT
función CONCAT
existe en SQL Server 2008 R2?
Si no, ¿cómo concatenar cadenas en SQL Server 2008 R2?
Para completar, en SQL 2008 usaría el operador más +
para realizar la concatenación de cadenas.
Eche un vistazo a la referencia de MSDN con código de muestra. Comenzando con SQL 2012, es posible que desee utilizar la nueva función CONCAT .
Te sugiero que lances todas las columnas antes de que las condes
cast(''data1'' as varchar) + cast(''data2'' as varchar) + cast(''data3'' as varchar)
Esto debería funcionar para ti.
CONCAT
es nuevo en SQL Server 2012. El enlace que proporcionó lo aclara, no es una función en versiones anteriores , incluido 2008 R2.
Que es parte de SQL Server 2012 se puede ver en el árbol de documentos:
SQL Server 2012
Product Documentation
Books Online for SQL Server 2012
Database Engine
Transact-SQL Reference (Database Engine)
Built-in Functions (Transact-SQL)
String Functions (Transact-SQL)
EDITAR Martin Smith señala útilmente que SQL Server proporciona una implementación de la función CONCAT
de ODBC .
Caída segura NULL en las 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 reúnen varias respuestas excelentes y advertencias planteadas por otros carteles, incluidos @Martin Smith, @Svish y @vasin1987.
Estas opciones agregan NULL
a ''''
conversión ''''
(cadena vacía) para un manejo NULL
seguro mientras se toma en cuenta el comportamiento variable del operador +
perteneciente a 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 para muchos argumentos según sea necesario.
Tenga en cuenta también el posible problema identificado por @Swifty con respecto al tamaño de varchar
predeterminado aquí remediado por varchar(MAX)
.
(city + '', '' + state + '' '' + zip) as ctstzip for select
(city + '', '' + state + '' '' + zip) for insert
Solo envía o convierte si cualquier tipo de campo es diferente de los demás.
En la inserción, el valor debe estar en el lugar correcto que necesita que se inserte. Usar "como" te dará un error.
es decir
Insert into testtable (ctstzip) Values ((city + '', '' + state + '' '' + zip))