当前位置: 移动技术网 > IT编程>数据库>MSSQL > 关于Select Where In 的排序问题

关于Select Where In 的排序问题

2017年12月12日  | 移动技术网IT编程  | 我要评论

沈阳新东北影城影讯,谁有黄页网址,孕儿美


复制代码 代码如下:

select *    
from table1    
where (id in (3,5,1,4,2))   

复制代码 代码如下:

select * 
from table1 
where (id in (3,5,1,4,2))如果in后面的条件都是数字,那mssql排序应该为 


复制代码 代码如下:

select *    
from table1    
where (id in (3,5,1,4,2))    
order by charindex(',' + convert(nvarchar, id) + ',', ',' + convert(nvarchar, replace('3,5,1,4,2', ' ','')) + ',')   

复制代码 代码如下:

select * 
from table1 
where (id in (3,5,1,4,2)) 
order by charindex(',' + convert(nvarchar, id) + ',', ',' + convert(nvarchar, replace('3,5,1,4,2', ' ','')) + ',')改进方法,不去处理空格,直接改用空格判断.可以用来判断少数有空格的字符条件. 

复制代码 代码如下:

select *    
from table1    
where (id in (3,5,1,4,2))    
order by patindex('% ' + convert(nvarchar(4000), id) + ' %', ' ' + convert(nvarchar(4000), replace('3,5,1,4,2', ',',' , ')) + ' ')   

复制代码 代码如下:

select * 
from table1 
where (id in (3,5,1,4,2)) 
order by patindex('% ' + convert(nvarchar(4000), id) + ' %', ' ' + convert(nvarchar(4000), replace('3,5,1,4,2', ',',' , ')) + ' ')

其实还是在sql外处理好条件字符串再进行查询和排序比较好.
对于mysql排序可能要改为(mysql不熟): 

复制代码 代码如下:

select *    
from table1    
where (id in (3,5,1,4,2))    
order by find_in_set(id, '3,5,1,4,2') 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网