gpt4 book ai didi

sql - 根据postgresql中的组角色过滤查询行

转载 作者:行者123 更新时间:2023-11-29 13:17:48 24 4
gpt4 key购买 nike

我有一个查询如下:

SELECT id, type, name
FROM users

结果如下:

1  member jack
2 member sarah
3 manager ron

我想修改 type manager 的查询将只显示给具有 hr 角色的用户。

基本上 hr 用户应该看到:

1  member  jack
2 member sarah
3 manager ron

非 hr 用户应该看到

1  member  jack
2 member sarah

我有一个 bool 查询,如果用户是否具有 hr 角色,它会给出 true false 值:

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

我该怎么做?

最佳答案

您可以尝试以下查询(在 WHERE 中使用 pg_has_role 时不需要选择)

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)

关于sql - 根据postgresql中的组角色过滤查询行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46463375/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com