gpt4 book ai didi

java - SQL 查询在输出中重复名称

转载 作者:行者123 更新时间:2023-11-29 16:31:30 25 4
gpt4 key购买 nike

我正在编写一个查询,调用员工姓名员工用户名安全级别菜单菜单选项卡菜单说明。我希望查询仅将员工姓名用户名作为列显示一次,然后显示安全级别菜单菜单选项卡菜单说明

Select usname as Name,
Ususer as Username,
Uswosecl as WO_SecurityLevel,
AoOpID as Operation_ID, aoseclevel as Operation_Security,
AoMenu as Menu, AoMenuItem as Tab, AoText as Description
from cudtatet.xxpuser
join fmsusrfua.xxpauops on uswosecl >= aoseclevel
and aoseclevel >= 0
where ususer NOT IN (‘*ALL’,’daffron’)
and aoAuOpID >=70000 and aoAuOpID < 80000
order by usname, ususer

我会发布我的输出,但它相当大,所以我将总结我收到的内容。

NAME        USERNAME      SEC LEVEL      MENU         TAB           DESC   
AIKO R. ariggins 4 HELP TIME ENTRY MESSAGES
AIKO R. ariggins 4 HELP ABOUT ABOUT
AKIO R. ariggins 4 HELP CHANGEPASS CHANGEPASS
.......

我希望收到的输出是:

 NAME: AKIO R.    USERNAME: ariggins   SECLEVEL: 4
Menu: HELP > TIME ENTRY > MESSAGES
HELP > ABOUT > ABOUT
HELP > CHANGE PASSWORD > CHANGE PASSWORD
.....
NAME: THE NEXT EMPLOYEE USERNAME: EMPLOYEE USERNAME SECLEVEL: 6
MENU: HELP > TIME ENTRY > TIME ENTRY
HELP > ABOUT > ABOUT
HELP > AD-HOC > AD-HOC
....CONTINUES UNTIL COMPLETE

我正在将此查询放入结果集中。如果可以通过查询来完成,那就太好了。如果我需要在我的应用程序代码中执行此操作,也会应用一些指导,因为我不确定如何生成此输出。

最佳答案

此类事情通常在应用程序代码(java、php 等)中完成。

MySQL 可以使用名为 GROUP_CONCAT() 的非标准聚合函数在内部完成此操作。

尝试这样的事情......(未调试)。

Select usname as Name, 
Ususer as Username,
Uswosecl as WO_SecurityLevel,
AoOpID as Operation_ID, aoseclevel as Operation_Security,
GROUP_CONCAT(CONCAT( AoMenu, '>' , AoMenuItem , '>', AoMenuItem )) menu
from whatever
join whatever ON ....
where ...
group by usname Ususer, Uswosecl, AoOpID, aoseclevel
order by usname, ususer

根据每个用户有多少不同的菜单详细信息项,您可能需要使用此

 SET group_concat_max_len = 10000;

这样列表就不会被截断。您可以使用任何合理的长度。如果您有数百个项目,您可能需要查看最大数据包长度。

关于java - SQL 查询在输出中重复名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53839763/

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