gpt4 book ai didi

mysql - 根据列值的变化向 MySQL 查询结果添加空白行

转载 作者:行者123 更新时间:2023-11-29 22:21:53 25 4
gpt4 key购买 nike

如果我有一个典型的 MySQL 查询,例如:

SELECT CommentNo, CreatedDate, CreatedTime, Text FROM Comment

结果将显示在一个简单的表格中。但是 MySQL 是否可以格式化输出,以便根据列的更改在结果中插入一个空行?

因此,如果我上面的查询默认返回以下内容:

 CommentNo CreatedDate CreatedTime Text
1 2012-08-02 15:33:27 This.
2 2012-08-02 15:34:40 That.
3 2013-06-30 19:45:48 Something else.
4 2013-06-30 21:26:01 Nothing.
5 2013-06-30 21:26:43 Was.
6 2013-07-01 13:40:32 Hello.
7 2013-07-01 14:08:25 Goodbye.

是否可以在更改 CreatedDate 的列值时插入空白行,所以我得到:

 CommentNo CreatedDate CreatedTime Text
1 2012-08-02 15:33:27 This.
2 2012-08-02 15:34:40 That.

3 2013-06-30 19:45:48 Something else.
4 2013-06-30 21:26:01 Nothing.
5 2013-06-30 21:26:43 Was.

6 2013-07-01 13:40:32 Hello.
7 2013-07-01 14:08:25 Goodbye.

上面不是数据在 Comment 表中的存储方式,而是格式化查询输出的问题。

或者在 Java 中使用 BufferedWriter 会更好吗?

最佳答案

首先,我要说的是,这种类型的格式化绝对应该在应用程序层完成,而不是作为查询完成。

也就是说,这似乎是一个有趣的练习,而且并不难:

select CommentNo, CreatedDate, CreatedTime, Text
from (select c.*, CreatedDate as key1, 0 as ordering
from comment c
union all
select c2.*, c.CreatedDate, 1
from (select distinct CreatedDate from comment c) c left join
comment c2
on 1 = 0
) c
order by key1, ordering, id;

请注意,第二个子查询中使用了 left join 来引入所有列,因此它与第一个子查询中的 select * 相匹配。但是,删除最后两列仍然需要列出所有列。

关于mysql - 根据列值的变化向 MySQL 查询结果添加空白行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30629612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com