代码如下:
set @sql = 'select top 1 @TempHotelID=hotelID,@Tempcname=cname,@Tempstar=star,@Tempaddress=address  from ' + @TableName  + ' where (cname like ''%'+@OldHotelName+    '%'' or '''+ @OldHotelName + ''' like ''%cname%'') and convert(varchar(20),city)='+convert(varchar(20),@CityID)+ ' and InChief=0'

exec sp_executesql @sql,N'@TempHotelID varchar(20) output,@Tempcname varchar(50) output,@Tempstar int output,@Tempaddress varchar(200) output', @HotelID output,@NewHotelName output,@star output,@address output疑问:(cname like ''%'+@OldHotelName+    '%'' or '''+ @OldHotelName + ''' like ''%cname%'')部分中,or后面的实现不知道如何表达,即通常我们使用 字段 like 字符串,那请问如何实现 字符串like 字段呢?

解决方案 »

  1.   

    charindex也可以,看你要实现的功能
      

  2.   

    是说把charindex放在or后边吗?语句是动态执行的
    我试下先
      

  3.   

    也可以
    字符串like 字段如:
    'ABC' like '%'+type+'%'
    (type为varchar(1),等于type in ('A','B','C'))
      

  4.   

    没有抱错,只是结果没出来,就是用了  Haiwer(海阔天空)  的方法啊。。
      

  5.   

    请教一下,如果你的表名的是变量,这个sql里面的变量@TempHotelID都能得到值么,应该都是null把??