У меня есть служба tableClusters с идентификатором столбца (значения 1590). Затем у меня есть еще одна таблица serviceClustersNew с идентификаторами столбцов, текстом и комментариями. В этой таблице у меня есть некоторые значения для текста и комментариев, ID всегда 1. Здесь приведен пример таблицы:SQL UPDATE row Number
[1, dummy1, hello1;
1, dummy2, hello2;
1, dummy3, hello3;
и т.д.]
WhaI хотят теперь для значений в колонке ID является продолжающаяся индекс таблицы serviceClusters плюс текущий номер строки: В нашем случае, это будет 1591, 1592 и 1593
Я попытался решить эту проблему так: Сначала я обновил столбец ID с максимальным значением, то я судимый добавить номер строки, но это не работаю:
-- Update ID to the maximum value 1590
UPDATE serviceClustersNew
SET ID = (SELECT MAX(ID) FROM serviceClusters);
-- This command returns the correct values 1591, 1592 and 1593
SELECT ID+ROW_NUMBER() OVER (ORDER BY Text_ID) AS RowNumber
FROM serviceClustersNew
-- But I'm not able to update the table with this command
UPDATE serviceClustersNew
SET ID = (SELECT ID+ROW_NUMBER() OVER (ORDER BY Text_ID) AS RowNumber FROM
serviceClustersNew)
посылая последнюю команду, я получить ошибку "Синтаксическая ошибка: упорядоченная аналитическая функция ns не разрешены в подзапросах. ". Есть ли у вас какие-либо предложения, как я могу решить проблему? Я знаю, что могу сделать это с помощью таблицы volatile или путем добавления столбца, но есть ли способ без создания новой таблицы/изменения текущей таблицы?
это оракул или MySQL? –
Это Teradata –