我正在使用Lucene對SQL數據的一個子集執行查詢,這些數據返回給我一個RecordID的評分列表,例如, 11,4,5,25,30。MSSQL ORDER BY合格表
我想使用此列表從RecordID檢索完整SQL表中的一組結果。
所以SELECT * FROM MyFullRecord where RecordID in (11,5,3,25,30)
我想檢索列表來維持秩序得分。
我可以通過使用像這樣的命令來做到這一點;
ORDER BY (CASE WHEN RecordID = 11 THEN 0 WHEN RecordID = 5 THEN 1 WHEN RecordID = 3 THEN 2 WHEN RecordID = 25 THEN 3 WHEN RecordID = 30 THEN 4 END)
我關心的是服務器負載的負載尤其是當我傳遞RecordIDs的長列表。有沒有人有這方面的經驗或如何確定最佳列表長度。
MSSQL中有沒有其他的方法來實現這個功能?
羅傑
一般 - 這在處理Lucene搜索的應用層中會更快。 –