0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【SQLServer】備忘録:データの存在確認をする

Posted at

はじめに

SQLServerでデータの存在確認をする方法をいつも忘れるので、備忘録として残します。

環境:SQLServer 2017

ひな形

SELECT 
	CASE 
		WHEN EXISTS
			(
			-- 存在をチェックしたいデータをSELECT
			)
		THEN 1
	ELSE 0
	END AS "Exists"

Existsの値が1であればデータが存在し,0であれば存在しないというクエリになります。
数値として受け取ることも可能ですが、SQLServerのデータマッピングを使って真理値型(boolean型)で取得すると使いやすいです。

使用例

ユーザが存在するかチェックしたい場合

SELECT 
   CASE
       WHEN EXISTS
       (
           SELECT 
               1 
           FROM 
               user
           WHERE
               user.id = @id
       ) THEN 1 
       ELSE 0 
   END AS "Exists";

簡単に解説

WHEN EXISTS で存在チェックをしています。
WHEN EXISTS の()内で取得したデータ数が1件以上であれば 1、0件の場合は 0 を出力する仕組みになっています。

使用例でいうと

SELECT 
    1 
FROM 
    user
WHERE
    user.id = @id

上記のクエリの結果が1件以上あれば 1 (存在する), 0件であれば 0 (存在しない)を出力します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?