
比如 fname 字段为 Q1..Q20,用普通排序的话,会出现 Q1 Q10 Q2 的情况,如何解决呢?
解决方法:
select * from tQuestionnaire order by LEFT(fname,PATINDEX('%[0-9]%',fname)-1),STUFF(fname,1,PATINDEX('%[0-9]%',fname)-1,'')*1
比如 fname 字段为 Q1..Q20,用普通排序的话,会出现 Q1 Q10 Q2 的情况,如何解决呢?
解决方法:
select * from tQuestionnaire order by LEFT(fname,PATINDEX('%[0-9]%',fname)-1),STUFF(fname,1,PATINDEX('%[0-9]%',fname)-1,'')*1