关键词:
datatable 数据为这样
名称 开始时间
A 09:00:00
A 15:00:00
B 08:00:00
B 11:00:00
B 13:00:00
C 08:00:00 想把datatable改成下面这样
名称 开始时间 结束时间
A 09:00:00 15:00:00
B 08:00:00 13:00:00
C 08:00:00
就是合并成一条,结束时间取相同名称的最大时间 ,,如果就一条的话 。结束时间就空着 。求大哥大姐给个思路。。
恩问题是这样的问题,一般行列转换我们不在代码里面转换,而是在数据库里面转换
你的datatable数据也是来源于数据库的
我们先创建表
--我们使用Num来代替时间create table tb_time(Name varchar(10) , Num INT)
--加入测试数据
INSERT INTO tb_time values('A',2)
INSERT INTO tb_time values('A',3)
INSERT INTO tb_time values('A',4)
INSERT INTO tb_time values('B',2)
INSERT INTO tb_time values('B',5)
INSERT INTO tb_time values('C',2)
--行列转换sql语句
SELECT NAME AS 名称, MIN(num)AS 开始数值,
case count(num)
WHEN 1 THEN NULL
WHEN 0 THEN NULL
ELSE MAX(num)
END
AS 结束数值 FROM tb_time
GROUP BY NAME
--测试结果
名称 开始数值 结束数值
A 2 4
B 2 5
C 2 NULL
在你这里,把我测试的Num 这列换成时间列 就可以了 参考技术A 直接在DataTable里面操作的话,我的思路是:
1)首先取出DataTable的关键字,A、B、C放在一个数组里;
2)循环这个数组,去DataTable里取当前数组值的时间的最大值,最小值,这个时候写入到想得到的DataTable中去。
有什么问题再问我吧。希望能给你提供一个思路。本回答被提问者采纳
行转列-列转行_查询
开发过程中常遇到行转列或是列转行的问题,即需要将数据库中一张表信息进行行转列操作,再将每列(即每个字段)作为与其他表进行联表查询的字段进行显示。一、行转列:将原来同一列下多行的不同内容作为多个字段,输... 查看详情
行转列/列转行
行转列:selectt.*,t.rowidfromTEST1t ID C1 C2 C31 小红 数学 10 2 小红 语文 20 3 小栏 数学 15 4小栏语文25 - 查看详情
行转列,列转行
oracle: -----------------------------行转列 --------------------------------select*fromdemocreatetabledemo(idint,namevarchar(20),numsint); ----创建表insertintodemovalues(1,‘苹果‘,1000);in 查看详情
sqlserver动态行转列(参数化表名分组列行转列字段字段值)
SQLServer动态行转列(参数化表名、分组列、行转列字段、字段值)2014-05-2616:09by听风吹雨, 26798 阅读, 50 评论, 收藏, 编辑一.本文所涉及的内容(Contents)本文所涉及的内容(Contents)背景(Contexts)实现代码... 查看详情
一个很简单小数正负数行转列问题
...版权归作者所有,欢迎转载,但请保留该声明。发现decode行转列之后,小数,负数都会自动抹去,需要to_char加工一下,并没有找到相关文献解释为什么抹去SQL>createtabletest0724(namevarchar(2 查看详情
mysql行转列与列转行
参考技术A建表:新增数据:源数据:行转列后:建表:新增数据:源数据:列转行后: 查看详情
sqlserver动态行转列(参数化表名分组列行转列字段字段值)
...zt/archive/2010/07/29/1787825.htmlPIVOT用于将列值旋转为列名(即行转列),在SQLServer2000可以用聚合函数配合CASE语句实现PIVOT的一般语法是:PIVOT(聚合函数(列)FOR列in(…))ASP完整语法:table_sourcePIVOT(聚合函数(va 查看详情
hive行转列&列转行
参考技术Ahive中行转列和列转行比较常见,一般是用于中间数据的生产。行转列一般采用IF进行判断,筛选出本列对应的数据进行统计。如果我们直接就会报错那么,我们由此引入LATERALVIEW函数对一列进行炸裂,其他列保持不变对... 查看详情
填报需求:行转列填报表的制作
...格式去展现数据让用户修改:这种填报需求可以归纳为是行转列填报表的制作。实现原理填报制作需要符合来源、界面、去向严格对应原则,那么我们可以拆开来看:界面是行转列之后的效果,所以来源脚本里需要进行行转列处... 查看详情
mysql行转列问题
...7-26qiangxiandate2016-12-28shangyexiandate2016-05-04casewhen就可以完成行转列selectcaseidwhen\'inspectiondate\'then\'2016-07-26\'when\'qiangxiandate\'then\'2016-12-28\'when\'shangyexiandate\'then\'2016-05-04\'else\'\'endfrom表名。。。。参考技术A用casewenthenend 查看详情
数据行转列实例
??在系统开发中经常遇到进行数据的统计,并将数据行转列的情景。比如表中的表示。可是在数据库中呈现出来的数据往往是横行的样式。这就须要一个转换。转换的方式有两种方式。1.利用crossjoin去进行转换。2.利用casewhen函数... 查看详情
行转列示例3
USE[ExampleDb]GO/******Object:Table[dbo].[PivotDemo2]ScriptDate:2017/12/1614:44:52******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE[dbo].[PivotDemo2]([Id][int]IDENTITY(1,1)NOTNULL,[PDate][nv 查看详情
pivot-行转列示例1
USE[ExampleDb]GO/******Object:Table[dbo].[SalesInfo1]ScriptDate:2017/12/1613:38:19******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE[dbo].[SalesInfo1]([Make][nvarchar](50)NOTNULLCONSTRAINT[DF 查看详情
pivot-行转列示例2
USE[ExampleDb]GO/******Object:Table[dbo].[PivotDemo1]ScriptDate:2017/12/1614:12:46******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOCREATETABLE[dbo].[PivotDemo1]([Id][int]IDENTITY(1,1)NOTNULL,[Warehouse 查看详情
hivesql行列转换(行转列,列转行)(代码片段)
在Hivesql应用中会遇到“行转列”和“列转行”的场景,下面介绍其基本使用语法。1.行转列:关键字:collect_set()/collect_list()、concat_ws()1)collect_set()/collect_list():collect_set()函数只接受基本数据类型,作用是... 查看详情
oracle逗号分割,列转行,行转列转载(代码片段)
https://www.cnblogs.com/gdzhong/p/4726315.html?tvd SQL代码列转行selectREGEXP_SUBSTR(a.rolecode,'[^,]+',1,l)rolecodefrom(select'a,aa,aaa'rolecodefromdual)a,(SELECTLEVELlFROMDUALCONNECTBY 查看详情
mysql---行转列(代码片段)
MySQL—行转列一、行转列1、SqlServer和Orcle中可以使用pivot行转列函数快速实现,而MySQL中没有pivot:SELECT*FROMstudentPIVOT(SUM(score)FORsubjectIN(语文,数学,英语))2、MySQL实现行转列SELECTname,MAX(CASEWHENsubject='语文'THENscoreEL 查看详情
mysql数据行怎么转为列(代码片段)
阅读目录行转列1、使用case...when....then进行行转列2、使用IF()进行行转列3、利用SUM(IF())生成列+WITHROLLUP生成汇总行,并利用IFNULL将汇总行标题显示为TotalIFNULL()函数WITHROLLUP4、利用SUM(IF())生成列+UNION生成汇总行,并利用IFNULL... 查看详情