我有一个SP,我需要检查是否有条件
ALTER PROCEDURE [dbo].[spCheck]
@strEmpname VARCHAR(50),
@intReturn INT OUTPUT,
@intWorkdID INT,
@intEmpID INT
AS
BEGIN
IF(@intWorkdID is not null and @intWorkdID != '')
BEGIN
IF EXISTS ( SELECT *
FROM Employee
WHERE [Empname] = @strEmpname
AND WorkID = @intWorkdID
)
SELECT @intReturn = '1'
END
ELSE
IF(@intEmpID is not null and @intEmpID != '')
BEGIN
IF EXISTS ( SELECT *
FROM Employee
WHERE [Empname] = @strEmpname
AND PeopleID = @intEmpID
)
SELECT @intReturn = '1'
END
ELSE IF(@intEmpID is not null and @intEmpID != '')
and(@intWorkdID is not null and @intWorkdID != '')
BEGIN
SELECT @intReturn = '0'
END
END
这里基于WorkID,EmpID
应执行1个条件和2个条件
如果两个条件都失败,我需要执行第三个条件
任何人都可以告诉它的语法
感谢
王子
答案 0 :(得分:4)
最好的方法是你可以使用
尝试以下内容:
SELECT @intReturn =
CASE
WHEN @intWorkdID IS NULL THEN 1
WHEN @intWorkdID<>'' THEN 1
WHEN @intEmpID IS NULL THEN 1
WHEN @intEmpID <>'' THEN 1
ELSE 0
END
这个
答案 1 :(得分:2)
int
不能等于''
。
我不确定您在逻辑中要求的是什么,但当if
不匹配时,它会运行else
部分。然后,根据您的脚本,您可以在此之后设置if -> else
。