我想知道如何在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。
答案 0 :(得分:21)
在这种情况下使用CASE和MSSQL
的两种方法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
答案 1 :(得分:3)
试试这个:
DECLARE @Test int;
DECLARE @Result char(10);
SET @Test = 10;
select @Result=
CASE @Test
WHEN 10 THEN 'OK test'
END
Print @Result;
答案 2 :(得分:2)
在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
,因为@Test
子句中声明了CASE
变量。
请参阅SQL Server的CASE
文档。
答案 3 :(得分:0)
CASE @Test 10,然后
答案 4 :(得分:0)
DECLARE @Test int;
SET @Test = 10;
SELECT
CASE @Test
WHEN 10
THEN 'OK test'
END
对于SQL Server 2005