我在存储过程中用like 声明了变量@name,
select * from table where name like '%'+@name+'%'
怎么没有结果啊,而实际上数据库里是有数据的

解决方案 »

  1.   

    select * from table where name like '%'+rtrim(@name)+'%'
      

  2.   

    恩,可能性
    1 左右有空格,所以需要rtrim(ltrim(@name))一下2 如果你这句话是被当作字符串的,那么需要这样写like ''%'+''+@name+''+'%''
      

  3.   

    select * from table where name like ''%'+''+@name+''+'%''
      

  4.   

    定义的变量类型可能不对,很可能是char 类型的,后面就多出空格来了
      

  5.   

    select * from table where name like '%'+Ltrim(rtrim(@name))+'%'
      

  6.   

    可以的,楼主可能写错什么地方了create table #tmp(
    v_1 varchar(10),
    name varchar(20)
    )
    insert into #tmp values('704001','Jason')
    insert into #tmp values('704002','Alert')
    insert into #tmp values('704003','Windy')
    insert into #tmp values('704004','Julyana')
    select * from #tmp
    declare @name varchar(10)
    set @name = 'jason'
    select * from #tmp where #tmp.name like '%'+@name+'%'
    drop table #tmp