2014-04-08 39 views
-1

說我有一個表,如下圖所示地串聯SQL結果轉換成一個字符串與反

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

GROUP_CONCAT()是不可能的這種情況。如上所述,我無法得到我想要的確切輸出。 – user2857350

+0

這是,檢查我的答案。 – majidarif

回答

0

mysql這將是,

SET @a:=0; 

SELECT CONCAT(@a:[email protected]+1,'-',Product_Id) FROM TABLE ; 
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

+1)這裏是你的答案http://sqlfiddle.com/#!2/dd02c9/1 – Hamidreza

+0

@Hamidreza謝謝:) – majidarif

+0

這只是不會在MySQL – user2857350