我需要为此 SQL 编写一个休眠条件:
select distinct USER_ID from USER_ROLE
where USER_TERM_DT is null
and ((ROLE_ID in (101,102)
and STATE_ID in ('MD')) or ROLE_ID = 150)
role_ids将具有值的组合 (101,102,150,151) OR 部分仅在 Role_Id 为 150 或 151 时才需要存在。
USER_ROLE表具有Role_id和state_id。只有角色 101 和 102 与 state_ids 相关联。
如果所有 4 个 role_id 值都存在,则 SQL 将类似于:
select distinct USER_ID from USER_ROLE
where USER_TERM_DT is null
and ((ROLE_ID in (101,102)
and STATE_ID in ('MD')) or ROLE_ID in (150,151))
请帮助解决这个问题。我正在阅读我需要同时使用合取和析取,但只是无法提出正确的代码。希望很清楚,我的 SQL 是正确的。