繁体   English   中英

在exasol中将多行卷成一行

[英]Rolling up multiple rows into a single row in exasol

我运行了以下查询以找出分配给每个用户的访问权限:

SELECT DISTINCT
       A.GRANTEE AS DB_ACCOUNT,
       B.PRIVILEGE AS ACCESS_RIGHTS
  FROM SYS.EXA_DBA_ROLE_PRIVS A
 INNER JOIN SYS.EXA_DBA_SYS_PRIVS B
    ON A.GRANTED_ROLE = B.GRANTEE;

查询的输出让每个用户都具有按行格式列出的多个访问权限,我需要将所有ACCESS_RIGHTS列为每个用户的一行。

例如:对于所有用户,输出都是这样的:

EXECUTE
SELECT
CREATE

而我需要输出为:

EXECUTE, SELECT, CREATE

我需要 EXASOL 中的功能

提前致谢 :)

使用group_concat作为

group_concat(B.PRIVILEGE) AS ACCESS_RIGHTS

格式可能会引用此链接

我在 Exasol 中有一个函数,用于将行汇总为一行,函数名称为GROUP_CONCAT 修改后的查询是:

选择不同
A.GRANTEE 作为 DB_ACCOUNT,
GROUP_CONCAT(B.PRIVILEGE) 作为 ACCESS_RIGHTS

SYS.EXA_DBA_ROLE_PRIVS A
内部联接
SYS.EXA_DBA_SYS_PRIVS B

A.GRANTED_ROLE = B.GRANTEE
GROUP BY A.GRANTEE;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM