在我的查询中,如果出现特定条件,我想在查询中添加和子句。 请参阅我的查询的where子句
1 and ps.dept=dept.deptid
2 and ps.sdept=deptsub.deptid
3 and
4 if(ps.dept<>ps.sdept)
5 begin
6 deptsub.Parent=dept.deptid
7 end
8 and ps.deptcategory=deptcat.category
在4我想要如果条件满足则应该在查询中添加6,否则这不可能如何。谢谢!
答案 0 :(得分:4)
怎么样:
and ps.dept=dept.deptid
and ps.sdept=deptsub.deptid
and ( ps.dept=ps.sdept or deptsub.Parent=dept.deptid )
and ps.deptcategory=deptcat.category
答案 1 :(得分:3)
尝试用以下方法替换第4,5,6和7行:
deptsub.Parent =
case when ps.dept <> ps.sdept then dept.deptid
else deptsub.Parent
end
在满足条件时,case语句将替换dept.deptid,否则它将只替换deptsub.parent - 这将始终= deptsub.parent
答案 2 :(得分:3)
and ps.dept=dept.deptid
and ps.sdept=deptsub.deptid
and
(
((ps.dept<>ps.sdept) and (deptsub.Parent=dept.deptid))
or
(ps.dept = ps.sdept)
)
and ps.deptcategory=deptcat.category