Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lecio

[Resolvido]  com Limit

Recommended Posts

Saudações,

 

Estava precisando que o resultado de varias linhas fosse convertido para uma string.

Ex.:

SELECT Posicao FROM Tabela

5

4

31

45

12

 

Precisava de conter isso assim: 5,4,31,45,12

 

Comecei a fazer uma Funtion para resolver porem percebi que o LIMIT nao aceita variavel.

Na linha que tem o LIMIT nao pode ter a variavel c, ai de nada adiantou.

 

Alguem tem alguma ideia de como fazer isso funcionar?

 

[ ],s

 

CREATE DEFINER=`root`@`%` FUNCTION `f_retline`(pCod INT,pCampoChave CHAR(100),pCampoRet CHAR(100),pTabela CHAR(100)) RETURNS text

BEGIN

DECLARE x INT;

DECLARE c INT;

DECLARE ret TEXT;

SET x=(SELECT COUNT(pCampoRet) FROM pTabela WHERE pCampoChave=pCod);

SET c=0;

WHILE (c<x) DO

SET ret=ret + ',' + (SELECT pCampoRet FROM pTabela WHERE pCampoChave=pCod LIMIT c,1);

SET c=c+1;

END WHILE;

RETURN ret;

END

Compartilhar este post


Link para o post
Compartilhar em outros sites

CREATE DEFINER=`root`@`%` FUNCTION `f_retline`(pCod INT,pCampoChave CHAR(100),pCampoRet CHAR(100),pTabela CHAR(100)) RETURNS text

BEGIN

DECLARE x INT;

DECLARE c INT;

DECLARE ret TEXT;

SET x=(SELECT COUNT(pCampoRet) FROM pTabela WHERE pCampoChave=pCod);

SET c=0;

WHILE (c<x) DO

SET ret=ret + ',' + (SELECT pCampoRet FROM pTabela WHERE pCampoChave=pCod LIMIT c,1);

SET c=c+1;

END WHILE;

RETURN ret;

END <--- Bacalhau fedorento

 

 

SELECT GROUP_CONCAT(Posicao) FROM Tabela <--- Absolut Vodka

 

:D

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.