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



在多条记录之间分割值,而不使用键连接它们。顺序依次。

当前SQL表内容:

RowNum    Value
1         10343  
2         20784
3         34523
4         22415
5         31245
6         11345
7         24588 
8         32946

我想返回合并两个连续记录的行,但仅返回值以2和3开头的行。没有共同的列值进行分组。

预期的结果:

RowNums   Values
2-3       20784, 34523
4-5       22415, 31245
7-8       24588, 32946

您可以使用lead():

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语法。根据您的数据库,可能会有变化。

最新更新