TSQL - Самый простой способ установить возрастающее значение в столбце Позиция .. порядок по цене - PullRequest
2 голосов
/ 09 декабря 2011

Представьте себе таблицу с [ID, Имя, Позиция, Цена]

В настоящее время таблица имеет ВСЕ записи с Позицией = 0 и , каждая запись имеет свое значение цены.

Какой самый быстрый способ обновить эту Позицию и установить ее значение уникальным на основе цены, где запись с наименьшей ценой - Позиция = 1, вторым наименьшим - Позиция =2 ... и так далее?

спасибо заранее.

1 Ответ

4 голосов
/ 09 декабря 2011

Вы можете использовать row_number для нумерации строк. Подзапрос должен ссылаться на номер строки по псевдониму:

update  yt
set    Position = rn
from   (
       select  row_number() over (order by Price desc) as rn
       ,      *
       from    YourTable
       ) yt

Рабочий пример для данных SE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...