1

複数の列を更新するスクリプトがあります。UPDATEただし、リスト内の列が NULL の場合にのみ更新されるようにしたいと考えています。スクリプトは次のとおりです。

DECLARE @blank nvarchar (255) = '';
UPDATE Table
SET
    Column1 = @blank,
    Column2 = @blank,
    Column3 = @blank
WHERE
    Column1 IS NULL OR
    Column2 IS NULL OR
    Column3 IS NULL

Column1 のみが null の場合でも、すべての列が更新されるため、これは機能しません。

その値が NULL の場合にのみ、列の値を更新する必要があります。

4

1 に答える 1

5

条件付き更新を使用できます。

update table
    set Column1 = coalesce(Column1, @blank),
        Column2 = coalesce(Column2, @blank),
        Column3 = coalesce(Column3, @blank)
    where Column1 IS NULL OR
          Column2 IS NULL OR
          Column3 IS NULL;

列の値が null でない場合は、元の値が割り当てられます。それ以外の場合は、空白の値が割り当てられます。

于 2013-06-18T15:05:08.890 に答える