SELECT (换成数字) AS vNumber FROM Table1 ORDEY BY vNumber 

解决方案 »

  1.   

    SELECT CAST(编码 AS int) AS vNumber FROM Table1 ORDEY BY vNumber 
        
      

  2.   

    你这家伙溜哪去了找不到
    我们的工作没有开展下去
    http://www.csdn.net/expert/topic/397/397928.shtm
      

  3.   

    用SUBSTRING 取出编码后再转换成数字
      

  4.   

    提供两个函数就搞定了
    SUBSTRING()
    INDEXCHAR()   1  -  9  -  1
    // No.1  No.2  No.3
    No.1*10000 + No.2 * 100 + No.3
      

  5.   

    我看了,刚才的贴子,呵呵,
    我今晚(QQ)加你 你要上呀,
    你说的对了,
    应该是那样的编码规则,
    可是 哎,客户说难记, 就把前面
    的 0 去掉,我就晕了,
    真的想不出什么,好办法呀,
    : zswang(伴水)(伤心中) 
    帮我想了, 呵呵
      

  6.   

    select * from tablename
    order by convert(integer,fields)
    其中fields指编码字段的名字
    就是将字符型的字段转换成数字型来排序
      

  7.   

    : yiyilc(依依)  谢谢你呀,
    可是这个方法不行,
      

  8.   

    DECLARE @string varchar(30)
    DECLARE @Index1 Int
    DECLARE @Index2 Int
    SET @string = '1-22-333'
    SET @Index1 = charindex('-', @string);
    SET @Index2 = charindex('-', @string, @Index1 + 1);
    select substring(@string, 1, @Index1-1) as no1, 
           substring(@string, @Index1 + 1, @Index2 - @Index1 - 1) as no2,
           substring(@string, @Index2 + 1, LEN(@string)) as no3
      

  9.   

    DECLARE @string varchar(30)
    DECLARE @Index1 Int
    DECLARE @Index2 Int
    SET @string = '1-22-333'
    SET @Index1 = charindex('-', @string);
    SET @Index2 = charindex('-', @string, @Index1 + 1);
    select REPLICATE('0', 3 - LEN(substring(@string, 1, @Index1-1))) + substring(@string, 1, @Index1-1) + '-' + 
           REPLICATE('0', 3 - LEN(substring(@string, @Index1 + 1, @Index2 - @Index1 - 1))) + substring(@string, @Index1 + 1, @Index2 - @Index1 - 1) + '-' +
           REPLICATE('0', 3 - LEN(substring(@string, @Index2 + 1, LEN(@string)))) + substring(@string, @Index2 + 1, LEN(@string))
    /*
    select substring(@string, 1, @Index1-1) as no1, 
           substring(@string, @Index1 + 1, @Index2 - @Index1 - 1) as no2,
           substring(@string, @Index2 + 1, LEN(@string)) as no3
    */
      

  10.   

    REPLICATE
    以指定的次数重复字符表达式。语法
    REPLICATE ( character_expression , integer_expression ) 参数
    character_expression由字符数据组成的字母数字表达式。character_expression 可以是常量或变量,也可以是字符列或二进制数据列。integer_expression是正整数。如果 integer_expression 为负,则返回空字符串。返回类型
    varcharcharacter_expression 必须为可隐性转换为 varchar 的数据类型。否则,使用 CAST 函数显式转换 character_expression。CHARINDEX
    返回字符串中指定表达式的起始位置。 语法
    CHARINDEX ( expression1 , expression2 [ , start_location ] ) 参数
    expression1一个表达式,其中包含要寻找的字符的次序。expression1 是一个短字符数据类型分类的表达式。expression2一个表达式,通常是一个用于搜索指定序列的列。expression2 属于字符串数据类型分类。start_location在 expression2 中搜索 expression1 时的起始字符位置。如果没有给定 start_location,而是一个负数或零,则将从 expression2 的起始位置开始搜索。返回类型
    intSUBSTRING
    返回字符、binary、text 或 image 表达式的一部分。有关可与该函数一起使用的有效 Microsoft® SQL Server™ 数据类型的更多信息,请参见数据类型。 语法
    SUBSTRING ( expression , start , length ) 参数
    expression是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。start是一个整数,指定子串的开始位置。length是一个整数,指定子串的长度(要返回的字符数或字节数)。说明  由于在 text 数据上使用 SUBSTRING 时 start 和 length 指定字节数,因此 DBCS 数据(如日本汉字)可能导致在结果的开始或结束位置拆分字符。此行为与 READTEXT 处理 DBCS 的方式一致。然而,由于偶而会出现奇怪的结果,建议对 DBCS 字符使用 ntext 而非 text。
    返回类型
    如果 expression 是支持的字符数据类型,则返回字符数据。如果 expression 是支持的 binary 数据类型,则返回二进制数据。返回字符串的类型与给定表达式的类型相同(表中显示的除外)。
      

  11.   

    谁叫你人客户轻松了
    当然自己要多吃点苦其实你可以在录入保存的时候就处理成"01-01-01"这种格式
    不就好sql了吗?