![](http://sqlserver.work/wp-content/themes/cocoon-master/images/b-woman.png)
SQL Serverで
・SELECT文の結果によって
・処理内容を分岐
できます!
![](http://sqlserver.work/wp-content/themes/cocoon-master/images/b-woman.png)
例えば
・SELECT結果が0レコードでない場合はUPDATE文を実行
・SELECT結果が0レコードの場合はINSERT文を実行
といったことができます!
![](http://sqlserver.work/wp-content/themes/cocoon-master/images/b-woman.png)
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
![上記のコード](https://sqlserver.work/wp-content/uploads/2022/05/sqlserver_if_exists_004.png)
上記を
・SELECT文の結果が0レコードの時に実行すると
・INSERT文が実行
されました。
![SELECT文の結果が0レコードの時に実行すると…](https://sqlserver.work/wp-content/uploads/2022/05/sqlserver_if_exists_001.png)
![INSERT文が実行された。](https://sqlserver.work/wp-content/uploads/2022/05/sqlserver_if_exists_002.png)
また
・SELECT文の結果が0レコードでない時に実行すると
・UPDATE文が実行
されました。
![UPDATE文が実行された。](https://sqlserver.work/wp-content/uploads/2022/05/sqlserver_if_exists_003.png)
参考①
単純にIF文で処理内容を分岐させることもできます。
詳細は以下の記事をご確認ください。
参考②
上記に記載した以下の詳細について、公式サイトをご確認ください。
●SQL ServerのIF文
●[BEGIN – END]について
●EXISTS