我有一个如下表格和一个USR表格,其中显示用户是管理员或普通用户。在这种情况下,USR_ID:1为admin
EMP_ID Terminated EMP_Name EMP_Loc
1 0 John Caster
2 1 Sally Jules
3 0 Steven James
这是一个EMP数据库表,EMP#2终止,当普通用户查询数据库时,不应显示已终止的员工,当管理员查询数据库时,我想显示所有员工包括已终止员工。
这是我的查询
select * from EMP join USR on USR.ID = EMP.EMP_ID
where (IF USR.ID = '1',terminated='1',terminated in ('0','1'))
但此查询仅显示非终止用户,即使对于管理员用户
也是如此答案 0 :(得分:0)
你可以在你的任何地方使用OR,比如
select * from EMP join USR on USR.ID = EMP.EMP_ID
where (USR.ID = '1' and terminated='1') or (USR.ID <> '1' and terminated in ('0','1'))
答案 1 :(得分:0)
SELECT *
FROM EMP
INNER JOIN USR ON USR.ID = EMP.EMP_ID
WHERE
(USR.ID = '1' AND Terminaded = '1') OR (USR.ID <> '1')
答案 2 :(得分:0)
根据您的要求,您可以尝试:
select *
from EMP join USR on USR.ID = EMP.EMP_ID
where (USR.ID <> '1' and Terminated = '1') or (Terminated in ('0', '1'))
如果Terminated
只有两个值“0”或“1”,则可以删除or
子句:
select *
from EMP join USR on USR.ID = EMP.EMP_ID
where (USR.ID <> '1' and Terminated = '1')