管理员
|
楼主#
更多
发布于:2012-12-13 15:07
 | |  |  | SQL字符串字段内的字符排序 排序要求: www.atcpu.com 1.首先安装 #号前面的字符大小排序2.再按照 / 左右消除的结果排序 例如: 1/4 < 5/16排序前1/4-2010#-242#-564#-405/16-186#-328#-32排序后结果2#-564#-406#-328#-3210#-241/4-205/16-18 SQL:--> 测试数据:[TB]if object_id('[TB]') is not null drop table [TB]GOcreate table [TB]([col] varchar(7))insert [TB]select '1/4-20' union allselect '10#-24' union allselect '2#-56' union allselect '4#-40' union allselect '5/16-18' union allselect '6#-32' union allselect '8#-32' SELECT * FROM TBORDER BY CASE WHEN CAST(PARSENAME(REPLACE(col,'#','.'),2) AS int) IS NULL THEN 1 ELSE 0 END,CAST(PARSENAME(REPLACE(col,'#','.'),2) AS int),PARSENAME(REPLACE(col,'/','.'),2) /*col-------2#-564#-406#-328#-3210#-241/4-205/16-18 (7 行受影响) */drop table [TB]
| |  | |  |
|