簡體   English   中英

減去具有相同shema的兩個DataTable,例如,減去SQL查詢

[英]subtract two DataTables that have the same shema, E.g Minus SQL query

我有兩個具有相同模式(相同的列名和類型)的數據表。我想獲取出現在第一個而不是第二個中的行。 有人可以幫我嗎? 謝謝。

幸運的是,MS DataTable創建了擴展方法 ,使您可以使用Linq方法(例如Except )來查詢數據行,並編寫了一個實現IEqualityComparer<DataRow>類,該類按列值比較DataRow實例:

var rows = dt1.AsEnumerable()
              .Except(dt2.AsEnumerable(),DataRowComparer.Default);

我會這樣寫:

var onlyIn1 = dataTable1.Where( row1 => !dataTable2.Rows.Any( row2 => row1["CustomerKey"] == row2["CustomerKey"]) ).ToList();

您可以嘗試以下方法:

var onlyIn1 = db.Table1.Except(db.Table2).ToList();

我從未測試過,但它應該像T-SQL的EXCEPT一樣工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM