在存储过程中,我有一个IF条件来检查查询结果中是否存在orgID
来设置标志。什么是正确的语法??
create procedure temp
(@TEMpID char(6)
)
declare @orgID char(3),flag char(1)
SET flag ='N'
BEGIN
set
@OrgID =(selecte orgID from table1)
IF @OrgID exists in ( select distinct(OrgID) from table2)
set flag = 'Y'
END
Begin
select p1, p2, p3, flag
from table3
END
答案 0 :(得分:3)
这样的事情:
IF exists ( select 1 from table2 where OrgID=@OrgID)
set flag = 'Y'
注意:我认为你有太多begin/end
块。
你可以把你的proc写成:
create procedure temp
(
@TEMpID char(6)
)
as
BEGIN
--whole body here
END
答案 1 :(得分:1)
您可以使用单个选择语句
SELECT
p1,
p2,
flag = CASE
WHEN EXISTS(SELECT table1.OrgId FROM table1 JOIN table2 ON table1.OrgId=table2.OrgId) THEN 'Y'
ELSE 'N'
END
FROM table3