SQL Serverで
・SELECT文の結果によって
・処理内容を分岐
できます!
例えば
・SELECT結果が0レコードでない場合はUPDATE文を実行
・SELECT結果が0レコードの場合はINSERT文を実行
といったことができます!
IF EXISTSによって実現できます!
※「IF」と「EXISTS」を組み合わせにより実現できます。
IF EXISTSの構文
IF EXISTSの構文
IF EXISTS (SELECT文)
BEGIN
0レコードでない場合に実行する処理
END
ELSE
BEGIN
0レコードの場合に実行する処理
END
IF EXISTSの使用例
ここでは例として
・「employee」テーブルに対して
・SELECT結果が0レコードでない場合はUPDATE文を実行
・SELECT結果が0レコードの場合はINSERT文を実行
します。
IF EXISTS (SELECT * FROM employee WHERE id = '00001')
BEGIN
--0レコードでない場合はUPDATE文を実行
UPDATE employee SET section = 'システム課' WHERE id = '00001'
END
ELSE
BEGIN
--0レコードの場合はINSERT文を実行
INSERT INTO employee VALUES('00001','鈴木','男','営業課')
END
上記を
・SELECT文の結果が0レコードの時に実行すると
・INSERT文が実行
されました。
また
・SELECT文の結果が0レコードでない時に実行すると
・UPDATE文が実行
されました。
参考①
単純にIF文で処理内容を分岐させることもできます。
詳細は以下の記事をご確認ください。
参考②
上記に記載した以下の詳細について、公式サイトをご確認ください。
●SQL ServerのIF文
●[BEGIN – END]について
●EXISTS