如下sql语句,传入参数为@InvoiceDesc,不知道此处作何判断?有何意义?谢谢回答!
if not rtrim(isnull(@InvoiceDesc,''))>''  
begin
 set @ErrorDesc='Invoice description is invalid; '
end

解决方案 »

  1.   

    isnull函数是判断@InvoiceDesc是否为NULL,如果是null的话就把他的值设为空''rtrim是去掉字符串右边的空格
    rtrim(isnull(@InvoiceDesc,''))>''  
    是判断 经过处理以后的@InvoiceDesc 跟 '' 比较的结果,这个是字符串比较大小然后前面是not,取得否
      

  2.   

    如果参数是NULL时返回一个'',去掉右空格,然后不为''
      

  3.   

    --意思很明确,
    if not rtrim(isnull(@InvoiceDesc,''))>''  
    begin
     set @ErrorDesc='Invoice description is invalid; '
    end--用isnull函数判断@InvoiceDesc变量是不是空,如果是空就执行begin..end中的代码,把字符串'Invoice description is invalid; '赋给变量@ErrorDesc
      

  4.   

    上面搞错
    应该是判断@InvoiceDesc 为NULL或空
    提示无效
      

  5.   

    为什么不用if @InvoiceDesc is not null or @InvoiceDesc!=''
      

  6.   

    >''的用法不好,不安全也不效率(这里当然没有效率问题)老老实实用@InvoiceDesc is null or @InvoiceDesc=''
    再好
      

  7.   

    谢谢Yang_(扬帆破浪),明白意思了,就是一个判断不为null  and  '';没有其它功效了?
      

  8.   

    if isnull(@InvoiceDesc,'')=''  
    begin
     set @ErrorDesc='Invoice description is invalid; '
    end直接这样就该可以了,为什么要这样复杂呢。
      

  9.   

    那代码不是我写的,现在要我把它转为oracle代码,这东西又不好测试,所以问问各位大侠了,呵呵,谢谢你们啦!