После нескольких попыток я смог сгенерировать столбец row_number()
с желаемым значением.
select "order", row_number() over win - 1, type, title, body, searched_string from plain_note
WINDOW win AS (
order by
title desc,
case when type = 0 then body else searched_string end desc
)
Теперь я хотел бы перезаписать весь столбец "order" , используя значение из "row_number () вместо win - 1"
Например,
- В 1-й строке я хотел бы обновить "order" столбец (исходное значение 13) со значением 0.
- Во 2-й строке я хотел бы обновить «порядок» столбец (исходное значение 14) со значением 1.
- ... и т. д.
Могу я узнать, что является правильным SQLite заявление, чтобы сделать это? Спасибо.
Подход, который я до сих пор пробовал, это
update plain_note set "order" = (
select row_number() over win - 1 from plain_note
WINDOW win AS (
order by
title desc,
case when type = 0 then body else searched_string end desc
)
);
Однако, это сделает ALL строк "порядка", имея 1-й ряд "row_number () сверх выигрыша - 1" , значение которого равно 0.