我正在开发一个在两个数据表中读取的工具。 这些数据表具有相同的 ID(外键(但值不同。
例如:
表1
ID Length Height
1 2.5 2.4
2 3.4 1.9
3 1.1 2.2
表2
ID Length Height
1 2.5 2.0
2 3.2 1.7
3 1.0 2.2
如何将这些表与公差进行比较?因此,它可以识别两个数据表中ID相同的位置,例如长度差异0.1,高度差异0.2可以吗?
完美的解决方案是一张看起来像
ID Length Height
1 ok ok
2 not ok ok
3 not ok not ok
有什么办法可以做到这一点吗? 致谢问候
这里可以使用何时比较两列
前任:
select case when (2=2) then 'ok' else 'not ok' end
您可以使用如下所示的 case 语句
select t1.ID
CASE WHEN ABS(t1.LENGTH-t2.LENGTH)<0.1 then 'ok' else 'not ok 'end,
CASE WHEN ABS(t1.HEIGHT-t2.HEIGHT)<0.2 then 'ok' else 'not ok 'end
from TABLE1 t1 join Table2 t2 on t1.ID = t2.ID
select tbl1.Id,
CASE when ABS(tbl1.Length-tbl2.Length)<=0.1 then 'OK' else 'Not OK' END,
CASE when ABS(tbl1.Height-tbl2.Height)<=0.2 then 'OK' else 'Not OK' END
from table1 tbl1 inner join table2 tbl2 on tbl1.Id=tbl2.Id
如果要比较两个数据表,请使用 LinQ
Datatable dtNew = (from dt1 in datatble1.AsEnumerable()
join dt2 in datatable2.AsEnumerable()
on dt1[id].ToString() = dt2[id].ToString()
.where()
.Select()
).CopyToDatatable()
在条件相应的情况下应用。 或者你可以参考 (https://forgetcode.com/csharp/1508-comparing-two-datatables-and-returning-a-datatable-by-matching-one-or-more-columns-using-linq(