我想知道如何在SQL中使用CASE
語句中的局部變量?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
我想知道如何在SQL中使用CASE
語句中的局部變量?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
在這種情況下使用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
在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
子句中陳述。
請參閱CASE
SQL Server的文檔。
這不適用於我的SQL 2005分貝。 (關鍵字'Case'附近的語法不正確)。 (我有同樣的解決方案,但它沒有工作)。 – Tobiasopdenbrouw 2010-08-04 07:25:17
它給出錯誤 – GibboK 2010-08-04 07:26:09
這裏的語法是錯誤的。你不能像if語句那樣使用case語句。 – 2010-08-04 07:26:53
CASE WHEN @Test 10 THEN
DECLARE @Test int;
SET @Test = 10;
SELECT
CASE @Test
WHEN 10
THEN 'OK test'
END
對於SQL Server 2005
anishmarokey的答案稍微清晰一些,因爲它保留了@result變量。 – Tobiasopdenbrouw 2010-08-04 07:30:25
嘗試這兩種方式:
DECLARE @Test int;
DECLARE @Result char(10);
SET @Test = 10;
select @Result=
CASE @Test
WHEN 10 THEN 'OK test'
END
Print @Result;
你使用什麼數據庫? – Oded 2010-08-04 07:20:13
MS SQL 2008 MS SQL 2008 – GibboK 2010-08-04 07:24:38
他們是否放棄了名稱的「服務器」部分? ;-P – 2010-08-04 07:45:50