IF OBJECT_ID('tempdb..#TempList') IS NOT NULL
DROP TABLE #TempList
CREATE TABLE #TempList (
VarName NVARCHAR(10) ,
VarValue NVARCHAR(10),
VarValueNext NVARCHAR(10)
)
INSERT INTO #TempList
VALUES ('Fred',NULL, NULL),
('Wilma',NULL, NULL),
('Barney',NULL, NULL),
('Betty',NULL, NULL)
;WITH cte_name AS (
SELECT *
FROM #TempList
)
UPDATE cte_name
SET cte_name.VarValue = 'Fred' WHERE cte_name.VarName = 'Wilma' OR cte_name.VarName = 'Barney'
-- , cte_name.VarValueNext = 'Pebbles' WHERE cte_name.VarValue = 'Fred' and cte_name.VarName = 'Wilma'
SELECT *
FROM #TempList
Я понимаю, что это простой пример, который не требует использования конструкции CTE. Я пытаюсь понять, как влияет блок UPDATE.WITH cte UPDATE SET с WHERE breaks
Я хотел бы установить значение количества полей. Как только я представляю предложение WHERE, кажется, я могу установить только одно значение.
Что я делаю неправильно?
Спасибо, Thys
Что, кажется, проблема ?, это работает так же, как вы хотите, чтобы – Lamak
Так как оператор обновления может иметь только один пункт, где. В этой ситуации, я думаю, вы хотели бы использовать выражение case. –
@ Lamak они говорят о втором столбце в обновлении (который в настоящее время прокомментирован). –