57 votos

¿Cómo utilizo la función CONCAT en Sql Server 2008 R2?

Estaba buscando un CONCAT función en Sql Server 2008 R2. I encontró el enlace para esta función . Pero cuando uso esta función, da el siguiente error:

Msg 195, Nivel 15, Estado 10, Línea 7
"CONCAT" no es un nombre de función incorporado reconocido.

¿El CONCAT existe en Sql Server 2008 R2?

Si no, ¿cómo concateno cadenas en Sql Server 2008 R2?

52voto

Lynn Langit Puntos 2311

sólo para completar - en SQL 2008 se usaría el operador más (+) para realizar la concatenación de cadenas. Aquí es la referencia MSDN con el código de muestra. A partir de SQL 2012, puede que desee utilizar la nueva función CONCAT, aquí es esa referencia.

44voto

ta.speot.is Puntos 15157

CONCAT es nuevo en el Sql Server 2012. El enlace que diste lo deja claro, no es una función en Versiones anteriores incluyendo el 2008 R2.

Que es parte de Sql Server 2012 puede verse 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 de manera útil que Sql Server proporciona una implementación de ODBC's CONCAT función .

18voto

kuklei Puntos 91

El CONCAT, como se ha dicho, no está soportado antes del Sql Server 2012. Sin embargo, puede concatenar simplemente usando el operador + como se sugiere. Pero cuidado, este operador arrojará un error si el primer operando es un número, ya que piensa que será sumar y no concatenar. Para resolver este problema, simplemente agregue '' delante. Por ejemplo

someNumber + 'someString' + .... + lastVariableToConcatenate

levantará un error PERO '' + someNumber + 'someString' + ...... funcionará muy bien.

Además, si hay dos números que deben ser concatenados asegúrese de agregar un '' entre ellos, así

.... + someNumber + '' + someOtherNumber + .....

14voto

vasin1987 Puntos 440

Sugiero que se fundan todas las columnas antes de concatenarlas

cast('data1' as varchar) + cast('data2' as varchar) + cast('data3' as varchar)

Esto debería funcionar para ti.

-3voto

MarkHone Puntos 306

También encontré esto poco claro. Si presiono "F1" de SQL Management Studio 2008 R2 sobre la palabra clave CONCAT entonces Sql Server Books Online se enciende y me muestra el siguiente artículo sobre la función:

Sql Server Books Online screen grab

Esto implica que la función está disponible en 2008 R2 pero si copio y pego la URL que se cita, se me presenta un artículo que se relaciona con Sql Server 2012 - ¡no es exactamente fácil de usar!

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X