2014-03-12 37 views
1

我需要重複值是下列名(TGroup_Name),進行選擇時表如何編寫查詢以抑制結果集列中的連續重複值?

對於實施例空或null:

在下面表中的列名(TGroup_Name)具有重複值(ED_1 )在兩排。所以我想讓null或空的第二行值(ED_1)。但不應該影響整行。

 

TGID TParent_Group_ID TGroup_Name TGroup_Type TEID TEmp_Group_ID TEmp_Name TEmp_Type 
1    0    MD   G  10   1   Mallik  GH 
10    1    ED_1   G  5   10   Thevan  GH 
10    1    ED_1   G  7   10   Gupta   U 
11    1    ED_2   G  11   11   Dinesh  GH 

+0

'UPDATE table SET TGroup_NAME =''Tgroup_Name = ED_1 LIMIT 9999999999 OFFSET 1' – Michael

+0

@Michael,爲了達到報告格式化效果而廢棄用戶原始數據可能不明智。 –

+0

您應該顯示生成您的示例輸出的'SELECT',並且最好是您希望輸出看起來像樣的樣本 – Coderer

回答

1

大多數開發者認爲這是最好使用應用程序端代碼(如Java或PHP)的結果集抑制這種連續的重複值。

但是你可以在SQL的MySQL變體中這樣做(http://sqlfiddle.com/#!2/691f5/4/0)。

SELECT TGID, 
     TParent, 
     IF([email protected],'',@PREV:=Group_ID) AS Group_ID, 
     TGroup_Name 
    FROM TABLE1, 
     (SELECT @PREV:='xxxx') AS i 
ORDER BY TABLE1.TGID 

IF@prev運行值合併的抑制連續的重複。額外的(SELECT...)子查詢用於初始化@prev

這是一個棘手的業務得到正確的。例如,如果你只是說ORDER BY TGID,而不是我所顯示的,它會出錯。它也完全不支持其他品牌和型號的桌面服務器。