sql oracle 11
Concatenar campo cadenas de la misma columna
tabla
1 hola
2 hola2
3 hola3
resultado de la consulta
hola, hola2, hola3
funcion de planetacodigo.com
CREATE OR REPLACE FUNCTION rowconcat(q IN VARCHAR2) RETURN VARCHAR2 IS
ret VARCHAR2(4000);
hold VARCHAR2(4000);
cur sys_refcursor;
BEGIN
OPEN cur FOR q;
LOOP
FETCH cur INTO hold;
EXIT WHEN cur%NOTFOUND;
IF ret IS NULL THEN
ret := hold;
ELSE
ret := ret || ',' || hold;
END IF;
END LOOP;
RETURN ret;
END;
consulta para usarla
select AR_CODIGO, OBS
from ARTICULO LEFT JOIN
( SELECT rowconcat('select trim(ods_tx1) from ordartsi where ods_codart LIKE 13029017 and (length(ods_tx1)>1)') OBS, '13029017' ART FROM DUAL) ON ART=AR_CODIGO
WHERE AR_CODIGO='13029017';
otra consulta mas sencilla
SELECT rowconcat('select trim(ods_tx1) from ordartsi where ods_codart
LIKE 13029017 and (length(ods_tx1)>1)') FROM DUAL
No hay comentarios:
Publicar un comentario