当选择表
时,我需要在Column Name (TGroup_Name)下使重复值为空或null例如:
在下面的表中,列名(TGroup_Name)在两行中有重复的值(ED_1)。所以我想让第二行值(ED_1)为空。但不应影响整个行。
<>之前TGID TParent_Group_ID TGroup_Name TGroup_Type TEID TEmp_Group_ID TEmp_Name TEmp_Type10 MD G 10马利克GH10 1 ED_1 G 5 10 Thevan GH10 1 ED_1 G 7 10 Gupta U11 1 ED_2 G 11 11 Dinesh GH大多数开发人员认为最好使用应用程序端过程代码(如Java或PHP)在结果集中抑制这些连续重复的值。
但是你可以在MySQL的SQL变体中这样做(http://sqlfiddle.com/#!2/691f5/4/0)。
SELECT TGID,
TParent,
IF(Group_ID=@PREV,'',@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
,而不是我所展示的,它会出错。它也完全不能移植到其他品牌和型号的表服务器。