Допустим, я создаю таблицу с полем int Page, int Section и int ID, где поле страницы варьируется от 1 до 8, а поле раздела - от 1 до 30 для каждой страницы.Теперь предположим, что две записи имеют дубликаты страницы и раздела.Как можно изменить нумерацию этих двух записей, чтобы последовательность нумерации страниц и разделов была непрерывной?
select page, section
from #fun
group by page, section having count(*) > 1
показывает дубликаты:
page 1 section 3
page 2 section 3
стр. 1, раздел 4 и стр. 2, раздел 4не хватает.Есть ли способ без использования курсора для поиска и перенумерации позиций в SQL 2000, который не поддерживает Row_Number ()?
Это значение ниже, конечно, дает точно такое же число, как в разделе:
select page, section,
(select count(*) + 1
from #fun b
where b.page = a.page and b.section < a.section) as rownum
from #fun a
Я мог бы создать сводную таблицу со значениями от 1 до 100, но к чему бы я присоединился?
Что я хочу сделать, это примерно так:
update p set section = (expression that gets 4)
from #fun p
where (expression that identifies duplicate sections by page)