2014-03-12 31 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,而不是我所显示的,它会出错。它也完全不支持其他品牌和型号的桌面服务器。