是否可以在case语句中设置变量?我的代码不起作用.谢谢大家.
CREATE PROCEDURE spReport
@q1 INT,
@q2 INT
AS
BEGIN
-- Dates for the 2 different quarters to be viewed
DECLARE @StartDateQ1 DATETIME
DECLARE @EndDateQ1 DATETIME
DECLARE @StartDateQ2 DATETIME
DECLARE @EndDateQ2 DATETIME
SELECT
CASE @q1
WHEN 1 THEN SET @StartDateQ1 = '20130401'
END
Run Code Online (Sandbox Code Playgroud)
Mar*_*ith 36
您可以使用
SET @StartDateQ1 = CASE @q1
WHEN 1 THEN '20130401'
END
Run Code Online (Sandbox Code Playgroud)
根据CASE表达式设置单个变量的值.
如果您的真实逻辑更复杂(例如需要在条件内设置多个变量),请查看IF ... ELSE.
CASE 表达式不是控制结构的流程.
这是使用 IF 语句解决此问题的另一种方法:
IF @q1 = 1
BEGIN
SET @StartDateQ1 = '20130401'
END
Run Code Online (Sandbox Code Playgroud)