根据其他参数值

时间:2017-02-25 12:49:54

标签: sql-server stored-procedures

我尝试根据存储过程中的以下其他参数值设置参数值

DECLARE @secndvalues NCHAR(1);

IF (@firstvalue = 'Con')
BEGIN
    SET @secndvalues = 'R';
END
ELSE IF (@firstvalue = 'Tin')
BEGIN
    SET @secndvalues = 'N';
END

但似乎它没有使用ELSE IF (@firstvalue = 'Tin')的第二个条件。我该怎么做呢?

2 个答案:

答案 0 :(得分:1)

您的代码应该有效,但case似乎更简单:

DECLARE @secndvalues NCHAR(1);
SET @secondvalues = (CASE WHEN @firstvalue = 'Con' THEN 'R'
                          WHEN @firstvalue = 'Tin' THEN 'N'
                          ELSE @secondvalues
                     END);

答案 1 :(得分:0)

实际上问题是@firstvalue长度太短保持其值,因为@firstvalue值变为空,因此@secndvalues值无法设置,现在问题排序