你能保证你的len(goodsid)-3都是大于0的整数值么!

解决方案 »

  1.   

    不能,但同样的情况,在我的电脑上是正常的,传到服务器就出错。如果是这样的话,我怎么在sql语句里面来判断len(goodsid)-3小于0的话,
    就替换成Left(goodsid, 0)
      

  2.   

    还不知道你的前N位有没有固定的位数,,后面三个是商品ID已定!你可以这样做:   把goodid  规范起来,比方说用11位字符来表示一个ID
      
       eg:
       'SP'+right(('000000'+rtrim(goodid)),9)  来表示一个ID
      

  3.   

    现在就是前N位用户ID是不固定的,而后面三个是商品ID已定,
    所以要取用户ID,好像只能Left(goodsid, len(goodsid)-3)来取。
    不知道大家有什么解决方法没有,先谢谢楼上几位。
      

  4.   

    asp ,应该是支持的,因为在我本机上调试都是正常的,
    只是传到服务器上后报错。
    服务器是win2000+iis5+sql server2000
      

  5.   

    这个问题和serverpack有关系吗?
      

  6.   

    改成这样吧!
    case  when len(goodsid)>=3 then left(goodsid,len(goodsid)-3) else '错误' end
      

  7.   

    请问这句该怎么写到sql语句里面去?
    比如
    select * from gooddb where Left(goodsid, len(goodsid)-3)='"&userid&"' order by id desc该怎么改写成上面这种?
      

  8.   

    select * from gooddb where (case when len(goodsid)>=3 then left(goodsid, len(goodsid)-3) else left(goodsid,6) end)='"&userid&"' order by id desc
    这样就可以了,谢谢楼上的