Sqlserver中根据in的顺序排序

2019-01-03 01:46发布

select ptp.id from [dbo].[Pic_Temp_Process] ptp where ptp.id in
(5599, 1763317, 1130129, 505992, 174477, 23565, 1192438) order by
charindex(','+convert(varchar,ptp.id)+',',',5599, 1763317, 1130129, 505992, 174477, 23565, 1192438,')

我的语句

5599, 1763317, 1130129, 505992, 174477, 23565, 1192438

顺序应该是按这样子

但实际返回给我

请问in的排序sql怎样写,谢谢!

2条回答
何必那么认真
2楼-- · 2019-01-03 02:29

order by 后面直接根据id排序

查看更多
不美不萌又怎样
3楼-- · 2019-01-03 02:35

看你截图应该是sql server 吧,用我下面截图这个试试,我以前用着是可以的。其实就是你上面的把convert(varchar,ptp.id)改成rtrim(cast(pip.id as varchar(10)))  

查看更多
登录 后发表回答