#sql-server-2016
Вопрос:
Разделите значения между несколькими записями без ключа для их соединения. Порядок следования последователен.
Текущее содержимое таблицы 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
Комментарии:
1. Тег с базой данных, которую вы используете.
Ответ №1:
Вы можете использовать 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. В зависимости от вашей базы данных могут быть различные варианты.