mysql - 我应该如何更改我的查询?

标签 mysql sql sql-server database oracle

我有一个显示如下数据的查询:

columnA columnB
1         a
1         b
1         c
2         a
2         x
3         z
3         w

但我想这样显示数据:

columnA columnB
1         a
          b
          c
2         a
          x
3         z
          w

基本上我想在重复数据上显示一个空单元格。 可能吗? 这是我的原始查询:

SELECT t1.columnnA, t2.columnB
FROM table1 t1
INNER JOIN table2 t2 ON t1.id = t2.id 
GROUP BY t1.columnnA, t2.columnB
ORDER BY t1.columnnA, t2.columnB;

我应该如何更改我的查询? 提前致谢。

最佳答案

对于 Oracle 风格:

SELECT (CASE WHEN rnum = 1 THEN v1.A ELSE NULL END) A, B
  FROM (  SELECT t1.columnA A,
                 t2.columnB B,
                 ROW_NUMBER () OVER (PARTITION BY t1.id ORDER BY t1.columnA)
                    rnum
            FROM t1 INNER JOIN t2 ON (t1.id = t2.id)
        ORDER BY t1.columnA, t2.columnB) v1

SqlFiddle

关于mysql - 我应该如何更改我的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22717746/

相关文章:

sql-server - 如何从本地电脑连接到SQL Server数据库?

php - 如何确定主叫号码的国家代码是什么?

MySQL LOAD DATA INFILE - 加载没有主键的文件

sql - 跨多个表的NHibernate查询

mysql - 括号中的数字究竟是什么意思?

java - MSSQL 中浮点字段中的 NaN 值

MySQL子查询选择非常慢

mysql - 对服务器 MySQL 数据库进行频繁、定期的服务器端更新

sql - 为什么列引用在 INNER JOIN 中不明确,而在 NATURAL JOIN 中却不明确?

sql - sql server 2005 的超出范围答案