是否有一种方法可以基于2种不同的条件显示表的输出?例如,我有一个表DEMO,它具有一个字段PERSONGROUP。如果PERSONGROUP = A或B,并且登录的用户已映射到这些人组,则有一些用户属于该PERSONGROUP,则该用户仅应显示DEMO表中的那些记录。如果已登录的用户不属于人员组A或B,则它应显示DEMO表中的所有记录。
DEMO表中的数据
DEMOID PERSONGROUP USER
100 A TOM
200 B TOM
300 DAVID
400 PAUL
TOM登录时,他应该只会看到100和200条记录。当DAVID或PAUL登录时,他们应该看到所有4条记录。以下是我使用过的相同查询,但不适用于else部分。
select * from demo where (exists (select 1 from persongroupteam where persongroup = DEMO.persongroup and respparty = :user and persongroup in ('A','B'))