问题如下,在SqlServer有一个这样的SQL查询,
SELECT * FROM
PDM_BANK_INFO t WHERE t.BANK_ID IN(9, 16, 3, 10, 11, 2, 5, 4, 23, 8, 15, 27);
但是查询出来的是按照 BANK_ID 自增排序的,但是想按照 9, 16, 3, 10, 11, 2, 5, 4, 23, 8, 15, 27 这样的顺序查出,
所以可以使用
select
* from PDM_BANK_INFO t where t.BANK_ID IN(9, 16, 3, 10, 11, 2, 5, 4, 23, 8, 15, 27)
order by CHARINDEX(Rtrim(cast(t.BANK_ID as varchar(30))),'9, 16, 3, 10, 11, 2, 5, 4, 23, 8, 15, 27');
查询符合要求。
select
* from PDM_BANK_INFO t where t.BANK_ID IN(9, 16, 3, 10, 11, 2, 5, 4, 23, 8, 15, 27)
order by CHARINDEX(Rtrim(cast(t.BANK_ID as varchar(30))),'9, 16, 3, 10, 11, 2,
5, 4, 23, 8, 15, 27');
注意标记的红字
本文介绍了一种在SQL中实现特定顺序查询的方法。当需要按照指定的ID列表顺序获取记录时,可以通过使用CHARINDEX函数结合Rtrim及cast转换来实现。这种方法适用于需要按特定顺序返回查询结果的场景。
1038

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



