问题如下,在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');
注意标记的红字