2014年4月1日火曜日

[SQL]他テーブルを利用して更新するSQL文その2

相変わらず苦手なSQL文。


①他テーブルを利用する基本の形は(SQLServerにて)
'--------------------------
UPDATE  T_テストテーブル SET 区分 = 2
FROM  T_参照テーブル AS B
where
T_テストテーブル.伝票No =  B.伝票No  AND B.区分 = 2
'--------------------------


②どうも確認する術がないので
WITH文を使って一度確認したいなら
'--------------------------
with B as (
SELECT  B2.伝票No
FROM T_参照テーブル AS B1 LEFT JOIN T_テストテーブル AS B2  ON B1.伝票No = B2.伝票No 
WHERE 
B1.区分 = 2
)
'--------------------------

で、確認してから

'--------------------------
with B as (
SELECT  B2.伝票No
FROM T_参照テーブル AS B1 LEFT JOIN T_テストテーブル AS B2  ON B1.伝票No = B2.伝票No 
WHERE 
B1.区分 = 2
)

UPDATE  T_テストテーブル
 SET     (区分 = 2)
 where T_テストテーブル.伝票No  IN (SELECT * FROM B)
'--------------------------


というか、結局は
②をやるならEXIST文使えという話になるのでした。

0 件のコメント:

コメントを投稿