日期:2014-05-19  浏览次数:20447 次

找个字符+数字 cast成int类型的最佳方法。
原来这样写直接过滤掉了带字符得,
SELECT   编号,   姓名,   FROM   xy
ORDER   BY   CAST(CASE   WHEN   isnumeric(编号)   =   1   THEN   编号   ELSE   0   END   AS   int)可是程序到了客户那里每个都带字符....
求一个最佳方法,让那个字符也参与到排序里面。
举个例子:
编号
aa005
bb003
ff009
dd003
aa001
我想让他排列出
aa001
aa005
bb003
dd003
ff009
这样

------解决方案--------------------
直接

SELECT 编号, 姓名, FROM xy order by 编号
------解决方案--------------------
SELECT 编号, 姓名, FROM xy
ORDER BY 编号
------解决方案--------------------
SELECT 编号, 姓名, FROM xy
Order by Left(编号,PATINDEX( '%[0-9]% ',编号)-1),
cast(Stuff(编号,1,PATINDEX( '%[0-9]% ',编号)-1, ' ') as int)