La mayoría de los principales RDBMS ofrecen varias opciones para concatenar dos o más cadenas.
- Está el
CONCAT()
función, que concatena sus argumentos. - También hay un
CONCAT_WS()
que le permite especificar un separador que separa las cadenas concatenadas. - Y también hay un operador de concatenación de cadenas, que nos permite concatenar sus operandos.
A continuación se muestran ejemplos de cada método.
El CONCAT()
Función
La mayoría de los principales RDBMS proporcionan un CONCAT()
función para concatenar sus argumentos de cadena. Generalmente, los argumentos que no son cadenas se convierten en una cadena antes de que ocurra la concatenación.
Ejemplo:
SELECT CONCAT('Bangkok', 'Breaking');
Resultado:
BangkokBreaking
Con esta función, si queremos incluir un espacio entre las cadenas, debemos agregar un espacio a una de las cadenas o incluir un espacio como un argumento separado:
SELECT
CONCAT('Bangkok ', 'Breaking') AS "Option 1",
CONCAT('Bangkok', ' ', 'Breaking') AS "Option 2";
Resultado:
+------------------+------------------+ | Option 1 | Option 2 | +------------------+------------------+ | Bangkok Breaking | Bangkok Breaking | +------------------+------------------+
RDBMS que tienen un CONCAT()
incluyen MySQL, MariaDB, SQL Server, Oracle y PostgreSQL.
SQLite no incluye un CONCAT()
funciona, pero sí tener un operador de concatenación de cadenas (ver más abajo).
El CONCAT_WS()
Función
Otra forma de incluir un espacio entre las cadenas es usar CONCAT_WS()
función. Esta función le permite especificar un separador que se usará para separar todas las cadenas concatenadas.
Ejemplo:
SELECT CONCAT_WS(' ', 'Bangkok', 'Breaking');
Resultado:
Bangkok Breaking
Esta función puede ser particularmente útil si tiene muchas cadenas para concatenar:
SELECT CONCAT_WS(', ', 'Red', 'Green', 'Orange', 'Blue');
Resultado:
Red, Green, Orange, Blue
En tales casos, solo necesita especificar el separador una vez.
RDBMS que tienen un CONCAT_WS()
incluyen MySQL, MariaDB, SQL Server y PostgreSQL.
SQLite y Oracle no tienen un CONCAT_WS()
funcionan, pero lo hacen tener un operador de concatenación de cadenas (ver más abajo).
El operador de concatenación de cadenas
La mayoría de los RDBMS incluyen un operador de concatenación de cadenas que concatena sus operandos.
Si está utilizando SQLite, esta es su única opción.
Ejemplo:
SELECT 'Spy' || 'craft';
Resultado:
Spycraft
Tenga en cuenta que en MySQL, primero deberá habilitar el operador de concatenación de tuberías.
Lo mismo ocurre con MariaDB.
Servidor SQL
El ejemplo anterior no funcionará en SQL Server. En SQL Server, use el signo más (+
) operador de concatenación de cadenas:
SELECT 'Spy' + 'craft';
Resultado:
Spycraft