c#datatable行转列并合并重复列。

author author     2023-03-17     186

关键词:

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... 查看详情