使用计数器将SQL结果连接成一个字符串

时间:2014-04-08 05:52:45

标签: mysql sql group-concat

说我有一张表格如下所示

 Product_Id      Description
  BX01              Desc 1
  BxX1              Desc 2
  Dss3              Desc 3
  HHXY              Desc 4

我希望结果完全像:1 - BX01, 2 - BxX1, 3 - Dss3, 4 - HHXY

我有这个问题:

DECLARE @ProID VARCHAR(8000)  
SELECT @ProID = COALESCE(@ProID + ' - ', '') + Product_Id FROM TABLE      
SELECT @ProID 

但返回值仅为:

BX01,- BxX1,- Dss3,- HHXY

缺乏计数。

怎么做?

谢谢

2 个答案:

答案 0 :(得分:2)

请改为尝试:

SELECT GROUP_CONCAT( 
            CONCAT( @rownum := @rownum + 1, '-', Product_Id ) 
            SEPARATOR ',' 
       ) AS data
FROM table, ( select @rownum := 0 ) r

SQL Fiddle Demo

这将通过对所有列数据进行分组并在其前面添加计数器来构建所需的结果,并用逗号分隔每个数据。

注意:您可以删除, ( select @rownum := 0 ) r。取决于你想要的东西。

答案 1 :(得分:0)

mysql中,它将是,

SET @a:=0;

SELECT CONCAT( @a:=@a+1,'-',Product_Id) FROM TABLE ;