查询中具有匹配结果的条件 Where

时间:2021-04-22 21:03:28

标签: sql sql-server tsql

我的表格 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'

1 个答案:

答案 0 :(得分:0)

只需使用 OR 逻辑,但要注意在 where 子句中使用函数对性能不利。

select *
from Rdetails
where RratingId in (2,3)
and (RId != 2 or udfRdetails(Rid) = 'True');