示例查询
SELECT * FROM Table WHERE ID in (5,3,4)
Run Code Online (Sandbox Code Playgroud)
如何调整此查询,以便返回条目的顺序遵循 ID 的输入(IE,第 5 个,第 3 个,第 4 个)。
编辑 - 清除 ID 是一个按正确顺序动态生成的列表。
最好的办法是将列表拆分为临时表。
我正在使用 Jeff Moden 的 DelimitedSplit8k。您可以在此处找到代码。请注意,它包含一个 ItemNumber 列,该列是按顺序排列的值。
DECLARE @DelimString varchar(50) = '4,5,3'
SELECT * INTO #DelimList FROM dbo.DelimitedSplit8k(@DelimString,',')
SELECT Table.*
FROM Table
JOIN #DelimList
ON Table.Id = #DelimList.Item
ORDER BY #DelimList.ItemNumber
Run Code Online (Sandbox Code Playgroud)
对于分隔列表中的大量值,这具有更快的额外好处。
| 归档时间: |
|
| 查看次数: |
220 次 |
| 最近记录: |