如题,我有个列保存了一些像数字的字符串,但是长度超过int型大小。
如果用 col + ‘00000’,SqlServer2000会把它当做数字来计算
但是如果用 col * ‘00000’,又超过int的长度了
请问我应该怎么做、?

解决方案 »

  1.   

    查下  cast  和 convert
      

  2.   

    col + ‘00000’,SqlServer2000会把它当做数字来计算-->不会的.前提是col不能是数字列
      

  3.   

    本人没有2000的环境,在05下作如下测试
    建立如下表:
    create table #temp (c1 nvarchar(50),c2 int);
    insert into #temp values('12345667788888888888','2147483647');对于字符串类型的的c1列,直接用字符串相加就可以
    测试代码如下:declare @str nvarchar(50);
    select @str=c1 + '000000' from #temp
    print @str结果为:12345667788888888888000000在整数类型的列建立如下代码:先强制转换int为字符串类型declare @str nvarchar(50);
    select @str=cast(c2 as nvarchar(20))+ '000000' from #temp
    print @str得出如下结果:
    2147483647000000楼主可以先把你那个列转成字符串(即使是字符串类型),然后再相加,希望对你有帮助
      

  4.   

    --如果用 col + ‘00000’,SqlServer2000会把它当做数字来计算
    select cast(col varchar(20))+'00000'
      

  5.   

    --晕得,,敲快
    select cast(col as varchar(20))+'00000'
      

  6.   

    cast(col as varchar)+'000000'
      

  7.   

    convert 或 cast 类型转换
      

  8.   

    先convert或者cast转成字符类型再合并
    看楼上多楼的就可以
    sqlserver是优先把字符类型转成数字的
    比如 select 1+'1'
    结果是2 而不是11