declare
@i_REWARK nvarchar(20)
BEGIN
SET @i_REWARK='测试'select * from TB_WD_QA_KND WHERE REMARK LIKE N'%'+@i_REWARK+'%'select * from TB_WD_QA_KND WHERE REMARK LIKE N'%测试%' 
END-------------------------------------
因为@i_REWARK是前台程式传入的值,所以只能用set @i_REWARK进行赋值才能模拟,其中第一个语句0行,第二个2行。请大家帮帮忙,实在搞不定了。

解决方案 »

  1.   

    declare
    @i_REWARK nvarchar(20)
    BEGIN
    SET @i_REWARK='测试'select * from TB_WD_QA_KND WHERE REMARK LIKE '%'+@i_REWARK+'%'select * from TB_WD_QA_KND WHERE REMARK LIKE N'%测试%' 
    END
      

  2.   

    declare
    @i_REWARK nvarchar(20)
    BEGIN
    SET @i_REWARK='测试'select * from TB_WD_QA_KND WHERE REMARK LIKE '%'+@i_REWARK+'%'select * from TB_WD_QA_KND WHERE REMARK LIKE N'%测试%'  
    END===================================仍然为0行,REWARK 是 nvarchar类型
      

  3.   

    exec ('select * from ta where [专业代号1] like ''%'+@i_REWARK+'%''')
      

  4.   

    declare
    @i_REWARK nvarchar(20)
    BEGIN
      SET @i_REWARK= N'测试'
      select * from TB_WD_QA_KND WHERE charindex(@i_REWARK,REMARK) > 0
    END
      

  5.   

    SET @i_REWARK= N'测试'
    这样写也不行,因为前台传进来的是'测试'是不带N的
      

  6.   

    SET @i_REWARK= N'测试'
    不能这样写吧'测试'是前台传进来的。