我将部门名称存储在变量@department
中,现在我将从一行中获取该特定部门名称,我想知道departments
表中是否存在部门id意味着用户输入的部门名称是否是有效的部门。如何做到这一点?如何将此查询转换为布尔表达式?
create table dbo.departments
(
department_id int primary key;
department_name varchar(255);
)
if(select @finaldepartment_id = department_id
from dbo.departments
where department_name like @department)
set @department_flag = 1;
else
set @department_flag = 0;
可以简化为单个查询
SET @department_flag = CASE
WHEN EXISTS (SELECT 1
FROM dbo.departments
WHERE department_name LIKE Concat('%',@department,'%')) THEN 1
ELSE 0
END
检查是否有符合您条件的部门使用EXISTS
IF EXISTS (
select 1
from dbo.departments
where department_name like '%'+@department+'%'
)
如果你需要给一个变量分配一个部门的id,用结果设置变量,然后检查它是否为空。