首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

查询按字符串的数值大小排序有关问题

2012-12-27 
查询按字符串的数值大小排序问题CREATE TABLE tb(Item varchar(10),Model varchar(10))INSERT tb SELECT

查询按字符串的数值大小排序问题
CREATE TABLE tb(Item varchar(10),Model varchar(10))
INSERT tb SELECT 'Table','10.5CM' 
UNION ALL SELECT 'Table','10CM'  
UNION ALL SELECT 'Table','12CM' 
Go

--怎么查询得到以下结果:(Model列的数字长度不一定,相当于按数字大小排序)
Item    Model
---------------------
Table10CM
Table10.5CM
Table12CM

---------------------------
select * from tb order by Model
以上语句只能得到:
Item    Model
---------------------
Table10.5CM
Table10CM
Table12CM
[最优解释]


CREATE TABLE tb(Item varchar(10),Model varchar(10))

 INSERT tb 
 SELECT 'Table','10.5CM' 
 UNION ALL SELECT 'Table','10CM'  
 UNION ALL SELECT 'Table','12CM' 

select * from tb order by cast(replace(Model,'CM','') as decimal)
 
/*
 Item       Model
---------- ----------
Table      10CM
Table      10.5CM
Table      12CM

(3 row(s) affected)
*/

[其他解释]
非常感谢,因为后面的单位可能随机,不一定是CM,有可能是其他的字母,怎么处理。 
[其他解释]
做单位换算后,统一单位才能排序.
[其他解释]
我是想说,比如另一张单据,单位全都是用英寸,  "  即英文的双引号,
或者遇到用M(米),KG(公斤)等等,能否按前面的数值取出来排序。

热点排行