11位数字,0带头的,怎么办呢,用INT似乎不行,用VARCHER无法比较大小.....

解决方案 »

  1.   

    用Varchar(10)
    比較的時候轉換
    cast(col as int)
      

  2.   

    不是11位嗎?
    varchar(11), 我記得sql 好像可以隱式轉換.
      

  3.   

    用varchar(10) 
    比較的時候轉換 
    cast(col as int)
      

  4.   


    deciaml(整数位,小数位)
      

  5.   


    decimal(整数位,小数位)
      

  6.   


    declare @a varchar(4) , @b varchar(4)
    set @a = '0298'
    set @b = '123'
    select (case when @a > @b then 'a大' else 'b大' end) as text结果b大
      

  7.   


    --假设字段为column,转换为下面形式比较大小
    cast('1'+column as bigint)
      

  8.   

    declare @a varchar(4) , @b varchar(4)
    set @a = '0298'
    set @b = '123'
    select (case when cast(@a as int) > cast(@b as int) then 'a大' else 'b大' end) as text
    /*
    text
    ----
    a大(1 個資料列受到影響)
    */
      

  9.   

    直接存数字,旁边加个计算列
    DECLARE @T TABLE(COL1 INT,COL2 AS RIGHT('000000'+CAST(COL1 AS VARCHAR(6)),6))
    INSERT INTO @T
    SELECT 12 UNION ALL SELECT 234
    SELECT * FROM @T
    /*
    12 000012
    234 000234
    */