我有一個簡單的表,基本上有一個NVARCHAR名稱列和DateTime時間戳列。我想編寫一個C#函數,該函數接收名稱和日期時間的集合,並從我的表中返回名稱匹配和日期時間在集合中的日期早於表中的日期時間的所有內容。基於C#集合過濾SQL表結果
我的非SQL大腦提出的簡單方法是創建一個SELECT語句以獲取所有匹配的名稱(「SELECT Name,Timestamp From MyTable WHERE Name IN(...)」),然後遍歷返回的集合比較DateTimes。
必須有更好的方法來用SQL或Linq來做到這一點。我如何更有效地做到這一點?
更新: 感謝您的有益反饋!聽起來像在這裏列出的各種方法上運行查詢分析器將是一條路。這裏有另外一個扔在那裏,如果有任何好奇:
List<Item> items = ... // this the collection
var db = new ItemDataContext(); // From .Net EF
string[] results = (from item in items
from dbItem in db.Items
where item.Name.Equals(dbItem.Name,StringComparison.InvariantCultureIgnoreCase)
&& item.Timestamp < dbItem.Timestamp
select dbItem.Token).ToArray();
感謝關於查詢分析器的提示以及此處的連接示例。 – jglouie 2011-06-15 01:30:06
http:// www。sqlservercentral.com/articles/T-SQL/73838/包含了對各種解決方案的深入討論。 – faester 2011-06-21 12:19:58