0

with matchingのレコードname,appidを更新したい。以下のステートメントは、以下のステートメントで table1 の値を更新しますtable1id

update table1 set name=@name,appid=@appid where id=@id

もう1つ条件が欲しいです。この のすべてのレコードを更新しますが、 のid場合appidは更新しないでください(@appid is null or id=54)。1つの列( )に制限(条件)を作成するにはどうすればよいですかappid。または、別の更新ステートメントを作成する必要がありますか? 上記のクエリをフォーマットできます。助けてください

4

3 に答える 3

1
update table1 set
    name = @name,
    appid = (case when @appid is null or id=54 then appid else @appid end)
where id=@id
于 2012-12-21T06:58:54.020 に答える
0
update table1 set name=@name,
appid= Case when id=54 then appid else Coalesce(@appid,appid) end where id=@id
于 2012-12-21T06:57:10.140 に答える
0

これは役に立ちますか?

update
  table1 
set name=@name,
  appid=ISNUL(@appid, appid) 
where 
  id=(CASE WHEN @id=54 THEN id+1 ELSE @id END)
于 2012-12-21T06:55:41.730 に答える