SQLのCASE
ステートメントでローカル変数を使用する方法を教えてください。
このスクリプトは私にエラーを与えます:
DECLARE @Test int;
DECLARE @Result char(10);
SET @Test = 10;
CASE @Test
WHEN @Test = 10
THEN SET @Result='OK test'
END
Print @Result;
MS SQL 2008を使用しています。
MSSQLを使用したこのシナリオでCASEを使用する2つの方法
DECLARE
@test int,
@result char(10)
SET @test = 10
SET @result = CASE @test
WHEN 10 THEN
'OK test'
ELSE
'Test is not OK'
END
PRINT @result;
SET @result = CASE
WHEN @test = 10 THEN
'OK test'
ELSE
'Test is not OK'
END
PRINT @result
これを試して:
DECLARE @Test int;
DECLARE @Result char(10);
SET @Test = 10;
select @Result=
CASE @Test
WHEN 10 THEN 'OK test'
END
Print @Result;
SQL Serverでは、次のように記述します。
DECLARE @Test int;
DECLARE @Result char(10);
SET @Test = 10;
SET @Result = CASE @Test
WHEN 10
THEN 'OK test'
END
Print @Result;
WHEN
句には@Test = 10
変数が指定されているため、CASE
句には@Test
がありません。
SQL Serverの CASE
ドキュメントを参照してください。
ケース@テスト10
DECLARE @Test int;
SET @Test = 10;
SELECT
CASE @Test
WHEN 10
THEN 'OK test'
END
SQL Server 2005の場合