说我有一张表格如下所示
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
。
缺乏计数。
怎么做?
谢谢
答案 0 :(得分:2)
请改为尝试:
SELECT GROUP_CONCAT(
CONCAT( @rownum := @rownum + 1, '-', Product_Id )
SEPARATOR ','
) AS data
FROM table, ( select @rownum := 0 ) r
这将通过对所有列数据进行分组并在其前面添加计数器来构建所需的结果,并用逗号分隔每个数据。
注意:您可以删除, ( select @rownum := 0 ) r
。取决于你想要的东西。
答案 1 :(得分:0)
在mysql
中,它将是,
SET @a:=0;
SELECT CONCAT( @a:=@a+1,'-',Product_Id) FROM TABLE ;