需要从表中取出如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