6

Name列にNull値があるテーブルにレコードがあり、以下のクエリを使用してそのレコードを更新したい..私のSQLクエリは次のとおりです。

set @Name=NUll;

update emp set name="gaurav" where name=@Name

このクエリを実行すると..レコードは更新されません..値Nullを列の値と比較しません

これはどのように行うことができますか?

4

5 に答える 5

18
SET @Name = NULL;

UPDATE emp
SET name="gaurav"
WHERE    (@Name IS NULL     AND name IS NULL)
      OR (@Name IS NOT NULL AND name = @Name)
于 2013-11-13T10:21:48.733 に答える
1

SQL では、IS NULL または IS NOT NULL を除いて、null 値を含むテストは常に false です。WHERE に IS NULL 句を追加する必要があります。

WHERE name = @name
**OR (name IS NULL and @name IS NULL)**
于 2013-11-13T11:01:34.290 に答える
1

また、次の条件を使用できますISNULL()

SET @Name = NULL;

UPDATE emp SET name='gaurav' WHERE ISNULL(@Name,'XXXXXXX')=ISNULL(Name,'XXXXXXX'); 

は、 EMP'XXXXXXX'テーブルに存在できない一意の文字列定数です。

于 2013-11-13T10:43:41.993 に答える
-2

これを試してUPDATE emp SET name = "gaurav" WHERE (@name IS NULL AND name IS NULL)

于 2013-11-13T10:20:41.777 に答える
-3

私のSQL知識によると、変数に保存できNULLますが、比較には使用できません

update emp set name="gaurav" where name is Null
于 2013-11-13T10:20:35.383 に答える