powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Предыдущее значение поля +1
7 сообщений из 7, страница 1 из 1
Предыдущее значение поля +1
    #40029610
gozip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, уважаемые.

Я новичок в базе данных и никак не могу сообразить вот по какому делу. Есть таблица с полями ID (int), Description (Varchar(50)).
Значения в поле ID разные, Само поле не проиндексировано, не ключевое
ID Description
1 ASD
4 ASDD
2 ASDFE
3 ASDFFG

и т.д

Мне нужно для всех последующих строки начиная со второй взять минимальное значение по полю ID (т.е 1), увеличить его на 1, и записать во вторую ячейку. И так далее для всех последующих ячеек. Т.е должно выглядеть так:
ID Description
1 ASD
2 ASDD
3 ASDFE
4 ASDFFG

Как это сделать через sql update? Подскажите пожалуйста, а то в голову что-то ничего не приходит. Заранее огромное спасибо!
...
Рейтинг: 0 / 0
Предыдущее значение поля +1
    #40029645
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gozip
Мне нужно для всех последующих строки начиная со второй
С сортировкой по Description?

gozip
Как это сделать через sql update? Подскажите пожалуйста, а то в голову что-то ничего не приходит. Заранее огромное спасибо!
row_number, или LAG
...
Рейтинг: 0 / 0
Предыдущее значение поля +1
    #40029725
gozip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg
gozip
Мне нужно для всех последующих строки начиная со второй
С сортировкой по Description?

Без сортировки.

gozip
Как это сделать через sql update? Подскажите пожалуйста, а то в голову что-то ничего не приходит. Заранее огромное спасибо!
row_number, или LAG


А можно примерчик какой-нибудь? Спасибо.
...
Рейтинг: 0 / 0
Предыдущее значение поля +1
    #40029730
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gozip
А можно примерчик какой-нибудь? Спасибо.
Так вы для своего вопроса сделайте пример, вы же делали тестовый код для этого?
А потом мы его тут поменяем, для корректной нумерации.
...
Рейтинг: 0 / 0
Предыдущее значение поля +1
    #40029812
gozip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg,

Делаю вот так, но обновление идет только на первую запись, где условие ID <> 1

Код: sql
1.
2.
3.
4.
update top(1) TExp
set ID = A.NextID
from (select min(ID)+1 as NextID from TExp) A
where ID <> 1



Как сделать чтобы циклом проходил по всем записям, начиная со второй, я не знаю.
...
Рейтинг: 0 / 0
Предыдущее значение поля +1
    #40029850
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
-- это для "понимания"
select *, newID = row_number() over(order by Description) from TExp;

-- это делает "как пожелали"
update t set ID = newID
from (select *, newID = row_number() over(order by Description) from TExp) as  t
...
Рейтинг: 0 / 0
Предыдущее значение поля +1
    #40029902
gozip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222,

Большое спасибо! То, что доктор прописал!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Предыдущее значение поля +1
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]