Возможно ли обновить столбец таблицы, используя значения из того же столбца? Обновление зависит от выбора строк в правильном порядке.SQL Server обновляет таблицу на основе значений в одной таблице
Запрос, который я попробовал это следующим образом:
UPDATE myTable
SET language = (SELECT language FROM myTable t2
WHERE t1.book = t2.book
AND t1.firstRun = t2.lastRun + 1)
FROM myTable t1
WHERE language = '--'
Результатом является то, что я в конечном итоге с языком как NULL в нескольких случаях.
Моя таблица выглядит следующим образом:
book | firstRun | lastRun | language
----------------------------------------------
b1 | 1 | 4 | English
b1 | 5 | 9 | --
b1 | 10 | 25 | French
b1 | 26 | 28 | --
Требуемая мощность:
book | firstRun | lastRun | language
----------------------------------------------
b1 | 1 | 4 | English
b1 | 5 | 9 | English
b1 | 10 | 25 | French
b1 | 26 | 28 | French
Возможно, и ваше заявление об обновлении кажется мне удобным. Вероятно, вы получаете нули в строках, которые не соответствуют подзапросу. –
Ваш запрос на обновление работает нормально, как сказал @ZoharPeled. http://www.sqlfiddle.com/#!3/e0194/1/0 – FutbolFan
Благодарим за отзыв. Он работает для маленькой игрушечной таблицы, как это. Но я нахожу, что на моей большой таблице, где порядок строк может быть другим, он не обновляет строки правильно. Некоторые строки оставлены как '-' – ame