比如:
SET @subS = SUBSTRING('asdasdasd',20,100)@subS此时没有返回结果,使用下面的方法判断为空不起作用,
请教应该怎么判断@subS返回结果为空?IF @subS = ''
BEGIN
PRINT '取出字符失败!'
END

解决方案 »

  1.   

    --------
    这样试试
    declare @subS varchar(20)
    set @subS substring('asdfsdfsdffd',20,100)
    if @subS=''
    print '取出字符失败'
    else 
    print '成功'
      

  2.   

    declare @subS varchar(100)
    SET @subS = SUBSTRING('asdasdasd',20,100)IF @subS = ''
    BEGIN
    PRINT '取出字符失败!'
    END--按照楼主的方法,好像没什么问题啊
      

  3.   

    declare @subs varchar(500)
    SET @subS = SUBSTRING('asdasdasd',20,100)
    IF @subS =''
    BEGIN
    PRINT '取出字符失败!'
    END
      

  4.   

    谢谢 以上几位的解答,不过当我把字符换成汉字时,打印出结果是空
    但是无论判断 ='' 或是 <>''时都得到相同的结果,不知应该怎么判断,
    declare @a varchar(100)
    declare @Csub varchar(100)
    declare @Clen  int
    declare @Cindex intset @a='字符是汉字时,'
    set @Clen = len(@a)
    set @Cindex = charindex(',',@a)+1
    set @Csub = substring(@a,@Cindex,@Clen)
    if @Csub= ''
    begin
    print '取出字符失败!'
    end
    else
    begin
    print '找到字符!'
    endif @Csub<> ''
    begin
    print '取出字符失败!'
    end
    else
    begin
    print '找到字符!'
    end
      

  5.   

    declare @a varchar(100)
    declare @Csub varchar(100)
    declare @Clen  int
    declare @Cindex intset @a='字符是汉字时,'
    set @Clen = len(@a)
    set @Cindex = charindex(',',@a)+1
    set @Csub = substring(@a,@Cindex,@Clen)
    select @Csub   --最后@Csub返回值为NULL,所以用=''或者<>''都没有效果
      

  6.   

    为NULL时应该怎么判断呢 if @Csub= NULL
    begin
    print '取出字符失败!'
    end这样也不行啊,应该怎么写呢
      

  7.   

    if @Csub is NULL
    begin
    print '取出字符失败!'
    end
      

  8.   

    DECLARE @SUBS  VARCHAR(500)
    SET @SUBS = SUBSTRING('ASDASDASD',20,100)
    IF  @SUBS IS NULL OR @SUBS = ''
      PRINT 'NO DATA'
    ELSE
      PRINT @SUBS