Mysql 只显示一次相同值的SQL结果
也许一个简单的问题,我只是没有找到答案。 我有一个类似MySQL的结果Mysql 只显示一次相同值的SQL结果,mysql,sql,formatting,output,Mysql,Sql,Formatting,Output,也许一个简单的问题,我只是没有找到答案。 我有一个类似MySQL的结果 Col1 | Col2 A | 1 A | 2 B | 1 我希望它输出以下内容: Col1 | Col2 A | 1 | 2 B | 1 我该怎么做?当使用GROUP BY时,他仍然在第一列中显示所有“A”,我只希望在第一次出现时显示一次 提前谢谢 您应该在应用程序中而不是在数据库中进行这种格式设置。为什么?您的结果实际上不是一个有效的表,因为第二行的定义取
Col1 | Col2
A | 1
A | 2
B | 1
我希望它输出以下内容:
Col1 | Col2
A | 1
| 2
B | 1
我该怎么做?当使用GROUP BY时,他仍然在第一列中显示所有“A”,我只希望在第一次出现时显示一次
提前谢谢 您应该在应用程序中而不是在数据库中进行这种格式设置。为什么?您的结果实际上不是一个有效的表,因为第二行的定义取决于第一行。在SQL表中,每一行都应该独立 但是,如果你小心的话,你可以这样做:
select (case when seqnum = 1 then col1 end) as col1, col2
from (select t.*,
row_number() over (partition by col1 order by col2) as seqnum
from t
) t
order by col1, seqnum;
要使其一致工作,重要的是外部
order by
与seqnum
的定义相匹配使用大小写表达式且不存在
:
select
case when not exists (select 1 from tablename where col1 = t.col1 and col2 < t.col2) then t.col1 end col1,
t.col2
from tablename t
order by t.col1, t.col2
这看起来不错-另一个解决方案也可能有效,但这一个我至少了解;)谢谢
| col1 | col2 |
| ---- | ---- |
| A | 1 |
| | 2 |
| B | 1 |