我需要以“~”作为分隔符按行合并字符串值。我有以下数据:我需要以“~”作为分隔符,按“row\u id”的升序为每个“id”连接“comment”列。预期产量如下:GROUP_CONCAT 不是选项,因为在我的配置单元版本中无法识别它。我可以用 collect_set 或者 collect_list ,但无法在两者之间插入分隔符。有解决办法吗?
GROUP_CONCAT
collect_set
collect_list
svgewumm1#
collect\u list返回数组,而不是字符串。可以使用concat\u ws将数组转换为分隔字符串。这将起作用,没有具体的评论顺序。
select id ,concat_ws('~',collect_list(comment)) as comments from mytable group by id ;
+----+-------------+ | id | comments | +----+-------------+ | 1 | ABC~PRQ~XYZ | | 2 | LMN~OPQ | +----+-------------+
1条答案
按热度按时间svgewumm1#
collect\u list返回数组,而不是字符串。
可以使用concat\u ws将数组转换为分隔字符串。
这将起作用,没有具体的评论顺序。