2017-09-28 2 views
1

에서 그룹의 역할에 따라 역할이 hr 인 사용자에게만 표시됩니다. 필터 행은 다음과 같이 내가 쿼리를 PostgreSQL의

은 기본적으로 시간 사용자가 표시되어야합니다

:

1 member jack 
2 member sarah 
3 manager ron 

비 시간 사용자가

1 member jack 
2 member sarah 

나는 사용자가 시간의 역할 여부가 있으면 참 거짓 값을 제공 부울 쿼리를 볼 수
select pg_has_role("current_user"(), 'hr'::name, 'MEMBER'::text) 

하지만 제대로 열을 필터링하기 위해 선택 쿼리에 통합 할 수 없습니다.

는 내가 그렇게 할 수있는 방법

SELECT id,type,name 
FROM users 
WHERE case when select pg_has_role("current_user"(), 'hr'::name, 
'MEMBER'::text) then ___________ else _______________ end 

뭔가를하려고 해요?

답변

1

당신은

select id,type,name 
from users 
WHERE type NOT IN (
    CASE WHEN pg_has_role("current_user"(), 'hr'::name, 'MEMBER'::text) 
    THEN '' 
    ELSE 'manager' END) 
(WHERE 내부 pg_has_role 사용할 때 선택이 필요하지 않습니다) 쿼리를 다음 시도 할 수 있습니다
관련 문제