我的表格 Rdetails 格式如下
RId Rrating RRatingId Rdetails
1 Low 1 3m
2 Medium 2 alco
3 Medium 2 hd
4 High 3 fascia
5 High 3 grainger
我需要获取表格中具有任何高和中评级的所有行。但是,当有中等 Rrating 记录时,我需要先检查 RId 传递到 Udf,然后再决定将其作为结果的一部分。
Select * from Rdetails where RratingId in(2,3)
--我需要在这里写条件 where 说当 Rid 是 2 时 where 子句应该有 where udfRdetails(Rid) = 'True'
。
答案 0 :(得分:0)
只需使用 OR
逻辑,但要注意在 where
子句中使用函数对性能不利。
select *
from Rdetails
where RratingId in (2,3)
and (RId != 2 or udfRdetails(Rid) = 'True');