需要从表中取出如id in(148,153,149,156)符合条件的记录,需要保持取出记录仍按(148,153,149,156)顺序排列。
用到CHARINDEX函数
WHERE [id] in (148,153,149,156) ORDER BY CHARINDEX(','+CAST([Id] as varchar)+',',','+'148,153,149,156'+',')
相当于 构造一个 ,148,153,149,156, 找出其中 如 ,153, 的索引位置,所以需要在左右都加 ,
CAST (expression AS data_type [ (length ) ] )
在 SQL Server 2008 R2 中将一种数据类型的表达式转换为另一种数据类型的表达式。
CHARINDEX ( expression1 ,expression2 [ , start_location ]
)
在 expression2 中搜索 expression1
并返回其起始位置(如果找到)。搜索的起始位置为 start_location
本文介绍了一种在SQL中查询指定ID列表记录的方法,并确保结果按照原始ID列表的顺序进行排序。通过使用CHARINDEX函数结合字符串操作技巧实现这一目标。
4350

被折叠的 条评论
为什么被折叠?



