关于#sqlserver#的问题:处理表数据

在 MSSQL中有一张表,如下:

img


表一

我想要做到如下效果:

img


图二

用SQL 语句与C#语法都可以,求个思路
表一中的数据是写入数据库的,我想要做的是从数据库中读取表一中的数据,用C#语法或者SQL 语句将表一中的数据根据时间和ID逐一遍历写入一个list集合,集合字段如图二,想过用 if else 但觉得太过繁琐有没有更合适的方法?

软件版本:SQL server 2019 vs2019 一个winform程序

用row_number排名下得到相同id的2个不同排名表自连接下
数据

img


查询结果

img


select t1.id,t1.数据 as 历史版本数据1,t1.生产时间 as 数据产生时间
,t2.数据 as 历史版本数据2,t2.生产时间 as 数据产生时间
,getdate() as 对比时间
,case when t1.数据=t2.数据 then '一致' else '不一致' end as 备注

from(
select id,数据,生产时间 ,row_number() over(partition by id order by 生产时间 asc) rn from table_1)t1 ,
(select id,数据,生产时间 ,row_number() over(partition by id order by 生产时间 desc) rn from table_1)t2
where t1.id=t2.id and t1.rn=1 and t2.rn=1

有帮助麻烦点下【采纳该答案】,谢谢~~


c#连接SQL数据库并读取数据表的两种方法_weixin_42568854的博客-CSDN博客 今天分享一下C#如何连接数据库并且读取数据表的两种方法。C#连接SQL数据库主要通过微软库函数来实现,具体步骤分为以下三步第一,使用SqlConnection对象连接数据库; 需要引用System.Data.SqlClient;第二,建立SqlCommand对象,负责SQL语句的执行和存储过程的调用;第三,第二步会执行SQL语句,然后对SQL或存储过程执行后返回的**“结果”**进行操作。... https://blog.csdn.net/weixin_42568854/article/details/86527700