1.正常情况. SELECT JoinEventIds from nt_mainnum 2.使用group_concat函数 select group_concat(JoinEventIds) from nt_mainnum 3.使用SUBSTRING_INDEX和CROSS JOIN将列里面的的数字都拆分出来. 方法一(网上查询的方法): 建配置表: )); INSERT INTO digits VALUES (), (), (), (), (), (), (), (), (), (); ))…
  -- ---------------------------- -- Table structure for `TabName` -- ---------------------------- DROP TABLE IF EXISTS `TabName`; CREATE TABLE `TabName` (   `Id` int(11) NOT NULL AUTO_INCREMENT,   `Name` varchar(20) DEFAULT NULL,   `Date` date DEFAU…
原文地址:http://blog.csdn.net/seandba/article/details/72730657 函数PIVOT.UNPIVOT转置函数实现行转列.列转行,效果如下图所示: 1.PIVOT为行转列,从图示的左边到右边 2.UNPIVOT为列转行,从图示的右边到左边 3.左边为纵表,结构简单,易扩展 4.右边为横表,展示清晰,方便查询 5.很多时候业务表为纵表,但是统计分析需要的结果如右边的横表,这时候就需要用到转置函数了 示例图表: Pivot语法: SELECT ....…
SQLServer中没有MySQL中的group_concat函数,可以把分组的数据连接在一起. 后在网上查找,找到了可以实现此功能的方法,特此记录下. SELECT a, stuff((SELECT ',' + b FROM #tb WHERE a = t.a FOR xml path('')), 1, 1, '' )AS b from  # tb AS t GROUP BY a; 先对a列进行分组,对分组中的b以Xml形式输出,再使用stuff将开关多出的,删掉. 具体实现参考:http:/…
首先pivot是一个列转行的函数,反向用是unpivot(行转列). 在SQL sever中可以这么写 SELECT * FROM [TABLE] /*数据源*/ AS A PIVOT ( MAX/*聚合函数*/(COL1/*行转列后 列的值*/) FOR A.COL2/*需要行转列的列*/ IN ([VALUE1],[VALUE2],[VALUE3].../*列的值*/) ) AS B 在Oracle中可以这么写 select * from tab pivot(max /*聚合函数*/ (co…
先来简单了解一下MySQL数据库有意思的简介 MySQL这个名字,起源不是很明确.一个比较有影响的说法是,基本指南和大量的库和工具带有前缀“my”已经有10年以上, 而且不管怎样,MySQL AB创始人之一的Monty Widenius的女儿也叫My.这两个到底是哪一个给出了MySQL这个名字至今依然是个迷,包括开发者在内也不知道. MySQL的海豚标志的名字叫“sakila”,它是由MySQL AB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的. 获胜的名字是由来自非洲斯威士兰…
本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) . MySQL中group_concat函数 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 基本查询 mysql> select * from aa; +------+------+ | id| name | +------+------+ | |…
本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) . MySQL中group_concat函数 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 基本查询 mysql> select * from aa; +------+------+ | id| name | +------+------+ |1 |…
MySql行转列 以id分组,把name字段的值打印在一行,逗号分隔(默认) select CustomerDrugCode,group_concat(AuditItemName) from noaudit_drug group by CustomerDrugCode; 以id分组,把name字段的值打印在一行,分号分隔 select CustomerDrugCode,group_concat(AuditItemName separator ';') from noaudit_drug grou…
PIVOT用于将列值旋转为列名(即行转列),PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P 完整语法: table_source PIVOT( 聚合函数(value_column) FOR pivot_column IN(<column_list>) ) UNPIVOT用于将列明转为列值(即列转行),可以用UNION来实现 完整语法: table_source UNPIVOT( value_column FOR pivot_column IN(<…
最近在办公软件项目,在开发权限指标遇到一个问题:我们系统的一些逻辑处理是用存储过程实现的,但是有一天客户反馈说权限指标分配报错,查了分配的权限数据牵扯到的数据权限基础资源,没有问题.权限指标分配的存储过程中有这样两句代码: SET @tests = '';SELECTGROUP_CONCAT( DISTINCT REPLACE ( concat( '''', ( indicator_content ), '''' ), ',', ''',''' ))AS Allnumber INTO @test…
最近在工作中遇到一个问题: 我们系统的一些逻辑处理是用存储过程实现的,但是有一天客服反馈说订单下单失败,查了下单牵扯到的产品基础资源,没有问题. 下单的存储过程中有这样两句代码: ; ; ; 执行存储过程后 变量_err会返回1,只能调试存储过程找问题了.调试到下面这段的时候,发现执行完这句sql,_err就变成1了 select group_concat(concat(@room_name,',',run_date,',',total_count) separator '|') into @o…
遇到问题: 项目中有个需求,MySQL中存储的是树状的数据.现在给出一个节点,需要从Mysql数据库中取出这个节点下所有的节点.采用MySQL的函数. 函数如下: CREATE DEFINER=`root`@`%` FUNCTION `getMemberChildList`(rootId BIGINT) RETURNS mediumtext CHARSET utf8 BEGIN DECLARE str VARCHAR(60000) ; DECLARE cid VARCHAR(60000) ; S…
今天做个后台服务,有个需求是批量生成一批表的数据,如果用BulkInsert会提升很大一截提交效率,但是如果用循环构造提交的Datable,则算法开销太高,所以用这种查询批量查出符合格式的DataTable结果集. *思想就是将查询列做CASE判断值,然后放在 SELECT段中作为别名列显示字段值,然后再根据ID分组. 下面是内层的原始查询效果: 下面是行转列后查询效果如图: 下面是上面两张图的最终查询语句: SELECT f_gameID,SUM(score) AS totNum, SUM(C…
先上语法规范: SELECT .... FROM <table-expr> PIVOT ( aggregate-function(<column>) FOR <pivot-column> IN (<value1>, <value2>,..., <valuen>) ) AS <alias> WHERE ..... 通过一个例子说明其用法: select * from (select salary, department_id…
(对一列数字求和) 在日常工作当中需要对文本过滤出来的数字进行求和运算,例如想统计一个MySQL分区表现在有多大 # ls -lsh AdPlateform#P#p*.ibd  |grep G 2.6G -rw-rw---- 1 mysql mysql 2.6G Mar  4 01:05 AdPlateform#P#p20200304.ibd 2.9G -rw-rw---- 1 mysql mysql 2.9G Mar  5 01:12 AdPlateform#P#p20200305.ibd #…
由于工作需要需要处理一些以逗号分隔的字符串,每次都要现做很是麻烦,网上找了很多都没有现成的,好吧,自己动手写一个好了 )) ) BEGIN /*函数功能: 把带逗号的字符串分割取出 参数: num 要取出的字符串的索引值, 以0开始 str 以逗号分割的字符串 扩展: 将逗号替换成其他符合,即可完成不同分隔符拆分字符串,亦可以把分隔符作为参数 */ SUBSTRING( SUBSTRING_INDEX(), CASE num THEN CHAR_LENGTH( SUBSTRING_INDEX(s…
group_concat()主要功能:能将相同的行组合起来 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 基本查询 select * from aa; +------+------+| id| name |+------+------+|1 | 10||1 | 20||1 | 20||2 | 20||3 | 200 ||3 | 500 |+------+------+6 ro…
需求:按照分组,将多条记录内容合并成一条,效果如下: 数据库示例: CREATE TABLE [t2]([NID] [bigint] NULL,[district] [nvarchar](255) NULL,[town] [nvarchar](255) NULL); insert into t2 values(1,'淮上区','曹老集镇'); insert into t2 values(2,'淮上区','淮滨街道'); insert into t2 values(3,'淮上区','梅桥乡');…
group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 以cat_id分组,把name字段的值打印在一行,逗号分隔(默认) 修改分隔符 去冗余 排序…
wm_concat(varchar2) 组函数…
有以下数据 deptname phone username isboss 部门A 电话1 员工A 0 部门A 电话1 领导A 1 部门B 电话2 员工B 0 部门B 电话2 员工C 0 部门B 电话2 领导D 1 需要展示效果 deptname phone boss emp 部门A 电话1 领导A 员工A 部门B 电话2 领导D 员工B,员工C 因为是oracle10g的原因,所以使用了wm_concat函数,但对wm_concat结果长度有限制,超出会报ORA-22922:不存在的LOB值,这…
), GuestName) , , '') as CustomerName FROM orderitem oi 以上涉及的两个表是OrderItem和Guest,以属性OrderSN和ItemId连接,查询结果格式为: 用户0,用户1,用户2 代码来自:http://www.2cto.com/database/201301/182442.html…
(1)select mark, wm_concat(status) from DISSENT_INFO t GROUP BY mark; 查出来的数据 mark     status 222        1007,1006333        1008,1008444        1008 (2) SQL> select deptno,listagg(ename,',')within group(order by sal)name from emp group by deptno; DEPT…
简单的Excel导出比较好做,只要设置表头,循环在表格中赋值添加数据即可,但是如果表头是不固定的,并且个数是不确定的,这就需要根据查询出数据的特点来添加导出了. 导出效果图: 如上图所示,商品的个数是不确定的,时间的月份个数也是不确定的,所以简单的通过模板是不可以的.并且数据库中查询出的信息是每个商品不同时间的信息,所以查询出的数据相同时间的可能有多条,一个商品在不同的时间分布,所以也可以是多条. 代码部分: public int DataTableToExcelByMProduct(DataT…
一.行转列 在有些应用场景中,如学生成绩.学生所有科目的成绩都保存到一张表里面,当我们需要以列表的形式显示出学生所对应的每一科目的成绩的时候,需要使用到行转列. 示例 -- 学生成绩表 create table grade ( id ) not null, name ) not null, course ) not null, score ) not null, primary key (id) ) -- 初始化数据 ); ); ); ); ); ); ); ); ); ); ); ); );…
Open the first article 在本文章中主要介绍以下内容: 1.静态行转列 2.静态列转行 3.动态行转列 4.动态列转行 1.静态行转列 --静态的行转列 --新建一个科目成绩表 --三个字段:学生名称,科目,成绩 CREATE TABLE SubjectScore ( StuName ), SubjectName ), Fraction ,) ) --插入4条数据 INSERT INTO SubjectScore ) INSERT INTO SubjectScore ) IN…
本文分享在Azure Databricks中如何实现行转列和列转行. 一,行转列 在分组中,把每个分组中的某一列的数据连接在一起: collect_list:把一个分组中的列合成为数组,数据不去重,格式是['a','a','b'] collect_set:把一个分组中的列合成为集合,数据去重,格式是['a','b'] 用于连接文本数组的函数,通过sep把数组中的item分割开,连接成一个字符串: concat_ws(sep, [str | array(str)]+) 举个例子,把每个用户的gam…
列转行 SELECT flag ,substring_index(substring_index(t.context,), ) as result FROM ( select 'aa' as flag,'1,2,3,4,5,6,7' as context union all select 'bb' as flag,'1,2,3,4,5,6' as context union all select 'cc' as flag,'1,2,3,4,5' as context union all sele…
 一   .列转行 创建所需的数据 CREATE TABLE [StudentScores]( [UserName] NVARCHAR(20), --学生姓名 [Subject] NVARCHAR(30), --科目 [Score] FLOAT, --成绩) INSERT INTO [StudentScores] SELECT '张三', '语文', 50INSERT INTO [StudentScores] SELECT '张三', '数学', 90INSERT INTO [StudentSc…