isi*_*ign 9 mysql sql database
所以我会有这样的事情.它的结果是对两个表的查询.
+------------------+------------------------------------+
| character_name | title |
+------------------+------------------------------------+
| derp | a |
| derp | b |
| derp | c |
| herp | a |
| herp | b |
| herp | c |
+-------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
我想要这个
+------------------+------------------------------------+
| character_name | title |
+------------------+------------------------------------+
| derp | a |
| | b |
| | c |
| herp | a |
| | b |
| | c |
+-------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
这可能吗?
你是这个意思吗?
select case when i.rnk = 1 THEN i.character_name ELSE '' END as NAME
, i.title
from(
select *
, row_number() over (partition by character_name order by title) as rnk
from t1
) i
order by i.character_name
Run Code Online (Sandbox Code Playgroud)
名字将得到值 1,您将在结果中显示该值,其他任何内容都将被隐藏。
更新 - MySql 版本:
SET @r_name:='';
select name, title FROM (
select @r_name:=CASE WHEN @r_name = name THEN ''
ELSE name
END AS name
, @r_name:=name
, title
FROM
t1
) t2
Run Code Online (Sandbox Code Playgroud)