查询所有用户及角色,一个用户会有多个角色 select u.*,sr.* from users u left join sys_user_role sur on sur.userCode=u.id left join sys_role sr on sr.roleCode=sur.roleCode 结果 将用户的角色合并为一个字段 select u.*,GROUP_CONCAT(DISTINCT(sr.roleCode)) from users u left join sys_user_role
今天记录一下在oracle中多个字段如何和合并成一个字段,使用到符号“||” 1.组合查询的数据 1)组合前查询的语句 -- 组合前数据的字段 -- select A.MID CATE_ID,A.Code CATE_CODE,A.Name CATE_NAME,A.GoodsType GOODS_TYPE_ID,B.Text GOODS_TYPE_NAME from Dxc_Goods_Cate A left join SysState B on A.GoodsType = B.Value and
关于和并列的 要这种效果. create table tb(idint, value varchar(10)) insert into tbvalues(1,'aa') insert into tbvalues(1,'bb') insert into tbvalues(2,'aaa') insert into tbvalues(2,'bbb') insert into tbvalues(2,'ccc') go /* stuff(param1, startIndex, length
问题原由: intouch项目中,利用intouch脚本来存储数据时,存入的时间格式为:date,time分开存储.在报表需求中,有需要利用查询两个时间段之间的数据. 问题解决: 1.直接写脚本(写出的脚本有bug) 表结构如下: select * from 在线数据日报表 where(convert(char(10),date,120)>='2018-10-30' and time>='18:00:00') and (convert(char(10),date,120)<='2018-
Oracle 12c提供的Identity Column特性简化了自增字段的定义. 声明自增字段通常有3种常见的用法,以下三种方式都支持INSERT语句中省略自增字段的插入,但有些许差别. 1. GENERATED [ALWAYS] AS IDENTITY 此时ALWAYS关键字是可选的: create table tb_test ( id number GENERATED ALWAYS AS IDENTITY, name varchar2(100) ); 此时试图插入指定ID字段的元组将报错,
create table #test ( id int not null, memeo int not null ) ,) ,) ,) )) ,,'') drop table #test 总结: 格式: SELECT STUFF((SELECT ','+字段 FROM 表名 for xml path('')),1,1,'')
在很多场合,我们会须要用到oracle列合并,oracle提供了一些方法用于把某列的多行数据合并成一行. 一.10G曾经使用WMSYS.WM_CONCAT wmsys.wm_concat将字段的值用","来隔开. select id,wm_concat(name) from tab_name group by id; 二.sys_connect_by_path sys_connect_by_path(字段名, 2个字段之间的连接符号),这里的连接符号不要使用逗号.oracl
Expression构建DataTable to Entity 映射委托 1 namespace Echofool.Utility.Common { 2 using System; 3 using System.Collections.Generic; 4 using System.Data; 5 using System.Linq.Expressions; 6 using System.Reflection; 7 using System.Reflection.Emit; 8 9 publ
有时为避免循环操作数据库.列表展示等一些原因需要将数据及关联数据批量加载进行集中处理,一种解决办法可以使用FOR XML PATH将多行数据合并成一列,达到字段拼接的效果.例如有两个表, 部门表T_Dept: 员工表T_Emp: 需要查询每个部门下的员工姓名,查询语句: 1 SELECT ROW_NUMBER() OVER (ORDER BY DeptId) AS Row, DeptName 2 , LEFT(A.EmpName, LEN(A.EmpName) - 1) AS EmpName 3
今天工作时遇见一个数据查询分组问题,就是将分组后同一组数据某一列合并为一行,因为之前很少用到,这次工作中刚好有用到,所以手痒难耐,将它记录下来. 查询sql如下: select t.province_code provinceCode, listagg(t.city_code || '-' || t.city_name, ',') within group(order by t.city_code) city from city t group by t.province_code; 查询效果如