C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■93769 / )  SQLの作り方について
□投稿者/ 犬夜叉 (43回)-(2020/01/30(Thu) 09:56:52)

分類:[.NET 全般] 

テーブルにID,NAME列があり、
指定したIDがなければ0
あれば指定したNAMEがあれば1
なければ2を返すようにしたいのですが

最初は CASE 〜 WHEN を使用し用としたのですがうまくいかず、
結局、以下のようにIFを使用するしかなかったのですが
こればベストなのでしょうか?

@ID @NAME 結果
0   'ABC' 0
0   'DEF' 0
1   'ABC' 1
1   'DEF' 2

DECLARE	@ID INT = 1;
DECLARE	@NAME VARCHAR(MAX) = 'ABDC';

WITH
TBL (ID, NAME)
 AS (
 SELECT 1, 'ABC'
 )
SELECT *
INTO  #TBL
FROM  (
    SELECT *
    FROM TBL
    ) AS TBL

IF	(
	SELECT	COUNT(*)
	FROM	#TBL
	WHERE	ID = @ID
	) <= 0
BEGIN
	SELECT	0
END
ELSE
IF	(
	SELECT	COUNT(*)
	FROM	#TBL
	WHERE	ID = @ID
	AND NAME = @NAME
	) > 0
BEGIN
	SELECT	1
END
ELSE
BEGIN
	SELECT	2
END;

IF OBJECT_ID(N'tempdb..#TBL', N'U') IS NOT NULL DROP TABLE #TBL;

返信 編集キー/


管理者用

- Child Tree -