из таблицы, состоящей из одного столбца. Нашел код в интернете, который создает временную таблицу и присваивает каждому значению строку (индексы в таблице изначально отсутствуют), но по выполнению запроса получаю ошибку: «the target table cte of the delete is not updatable», причем сама временная таблица выводится отдельно и выглядит нормально.
Подскажите, пожалуйста, в чем может быть проблема?
Код ниже:
CREATE TABLE test (NUM INT);
INSERT INTO test (NUM) VALUES (1), (3), (7), (1), (8), (9), (11), (3), (7), (7);
WITH cte AS (
SELECT NUM,
ROW_NUMBER() OVER (
PARTITION BY NUM
ORDER BY NUM
) AS row_num
FROM test
)
DELETE FROM cte
where row_num > 1;
а у вас так не получится... ведь условия удаления всегда where NUM=x и их не отличить
это работает в ms sql нужно смотреть еще и привязку к субд
Обсуждают сегодня