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 WITH WHERE breaks
いくつかのフィールドの値を設定したいと思います。 WHERE句を導入するとすぐに、私は1つの値しか設定できないように見えます。
私は間違っていますか?あなたがここにCASE式ではない句を使用する必要があります
おかげで、 タイス
更新文は、単一のwhere句を持つことができるので、これはあなたが – Lamak
にそれをしたいだけのように実行?問題のようです何。このような状況では、ケース式を使用したいと考えています。 –
@Lamak彼らはアップデートの第2列についてコメントしています(これは現在コメントされています)。 –