首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在SQL中,当没有公共ID时,如何将两个连续的行合并为一个行?

在SQL中,当没有公共ID时,如何将两个连续的行合并为一个行?
EN

Stack Overflow用户
提问于 2021-08-26 19:47:55
回答 1查看 37关注 0票数 0

在没有键的情况下在多个记录之间拆分值。顺序是连续的。

当前SQL表内容:

代码语言:javascript
复制
RowNum    Value
1         10343  
2         20784
3         34523
4         22415
5         31245
6         11345
7         24588 
8         32946

我希望返回组合了两个连续记录的行,但只返回那些值以2和3开头的行。没有公共列值可供分组。

期望的结果:

代码语言:javascript
复制
RowNums   Values
2-3       20784, 34523
4-5       22415, 31245
7-8       24588, 32946
EN

回答 1

Stack Overflow用户

发布于 2021-08-26 19:50:49

您可以使用lead()

代码语言:javascript
复制
select concat(rownum, '-', next_rownum) as rownums,
       concat(value, ', ', next_value) as values
from (select t.*,
             lead(rownum) over (order by rownum) as next_rownum,
             lead(value) over (order by value) as next_value
      from t
     ) t
where value like '2%' and next_value like '3%';

这使用标准SQL语法。根据您的数据库,可能会有一些变化。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68944554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档