Выберите displayid и displayorder, где имя столбца равно 1, удалите его и измените порядок отображения - PullRequest
0 голосов
/ 15 октября 2019

enter image description here

enter image description here

Мне нужно выбрать displayid и displayorder, где columnname равно 1и удалите его, и измените порядок отображения

enter image description here

enter image description here

Я создал запросудалить columnid и переставить displayorder, но не знал, как пройти через displayid, используя while.?

1 Ответ

2 голосов
/ 15 октября 2019

Вы можете использовать синтаксис delete ... from ... join ... для удаления:

delete di
from displaytable di
inner join detailstable de 
    on  de.column_id = di.column_id
    and de.columnname = 'one'

Затем вы можете переназначить новые displayorder s, используя row_number() и общее табличное выражение:

with cte as (
    select 
        di.*,
        row_number() over(partition by displayid order by displayorder) rn
    from displaytable di
)
update cte set displayorder = rn
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...