Saltar al contenido
­čÜÇ Lacodigoteca.com

Concatenar consultas en un campo SQL

Concatenar consultas en un campo SQL

Los casos pr├ícticos para concatenar consultas en un campo SQL es agrupar categor├şas de productos, correos de electr├│nicos o un ranking de los productos m├ís vendidos. Y todo esto en una sola l├şnea y separado por comas.

Te voy a ense├▒ar c├│mo hacerlo en 3 sencillos pasos:

Paso 1. Preparamos nuestra consulta SQL

Lo primero que vamos a hacer es preparar la consulta SQL. Vamos a filtras unos productos por la categor├şa “Frutas“. Os muestro un ejemplo:

SELECT id,nombre,tipo,precio
FROM productos
WHERE tipo = 'Frutas'

Obtendremos una consulta como esta:

idnombretipoprecio
1567ManzanasFrutas0.51
4543Naranjas Frutas3.60
6678Peras Frutas2.60
3345Mangos Frutas2.70
0034Kiwis Frutas4.20

Paso 2. Convertir la consulta en XML

Existe una caracter├şstica integrada SQL Server que sirve para obtener resultados en formato XML. Se trata de FOR XML.

Vamos a unificar todas los nombres de las frutas. Para ello, vamos a a├▒adir una coma ‘,’ antes del campo de “nombre” , y, al final de la consulta a├▒adimos lo siguiente FOR XML PATH (”).

SELECT ','+nombre
FROM productos
WHERE tipo = 'Frutas'
FOR XML PATH ('')

Tendremos el siguiente resultado:

,Manzanas,Naranjas,Peras,Mangos,Kiwis

Paso 3. Quitamos la coma inicial

Ya tenemos casi los registros concatenados, nos falta quitar la coma del principio. Para librarnos de ella hay una funci├│n espec├şfica de T-SQL que se llama STUFF.

┬┐Qu├ę hace STUFF? Elimina los caracteres que le indiquemos mediante par├ímetro y lo sustituye por lo que que queramos. En dos palabras, lo que hace es quitar y rellenar.

SELECT STUFF(
    (SELECT ','+nombre
    FROM productos
    WHERE tipo = 'Frutas'
    FOR XML PATH ('')
    ),1,2, '')

Y este ser├şa nuestro resultado final:

Manzanas,Naranjas,Peras,Mangos,Kiwis

Si sigues todos los pasos correctos, paso por paso podrás concatenar consultas en un campo SQL al primer intento.

A %d blogueros les gusta esto: