zoukankan      html  css  js  c++  java
  • sql中,把varchar类型转换成int型,在进行排序

    为了实现varchar型的字段序号递增,我每次插入数据要先找出数据库中序号最大的那个再加1,可是对  
    varchar进行order   by   时,得不到正确结果,如   varchar里,‘100’<'99'  
    怎么实现转化  
    另外,我只比较varchar的后几位,那个怎么截取后几位再进行int转化再排序呢?   

    回答1:
    select   *   from   yourtable   order   by   cast(youcol   as   int)

    回答2:
    order   by   convert(int,   字段)

    回答3:
    但是你的列里面只能是数字组成的字符,要不然会出错

    回答4:
    create   table   #t(  
    b   int   identity(1,1),  
    a   varchar(3)  
    )  
    insert   into   #t   select   '003'  
    insert   into   #t   select   '002'  
    insert   into   #t   select   '001'  
    insert   into   #t   select   '010'  
    insert   into   #t   select   '023'  
    --insert   into   #t   select   'a03'  
       
       
    select   *   from   #t   order   by   cast(a   as   int)  
       
    drop   table   #t

    回答5:
    declare   @maxid   numeric(8)  
       
    select   @maxid=max(isnull(cast(right(字段,x)   as   numeric),0)+1)   
    x表示从后面取多少位。 x表示从后面取多少位。 x表示从后面取多少位。


  • 相关阅读:
    第一周博客作业(学习历程和感想)
    WordCount 基础功能
    MyBatis 分页插件 PageHelper 使用
    手机尾号猜年龄骗局解密
    逻辑思维题一
    给div添加滚动条
    my97中文乱码问题
    cookie中文乱码
    多线程下的单例模式
    HTML5的入门与深入理解
  • 原文地址:https://www.cnblogs.com/yeye518/p/2231665.html
Copyright © 2011-2022 走看看