declare @cur char(3)
set @cur='%'
select * from tb where cur like '%'+@cur+'%'这样执行查不出数据,我是想达到这样的效果:
select * from tb where cur like '%'
@cur 是传入的参数,有可能是RMB,HKD....,如果传入RMB,则执行
select * from tb where cur like 'RMB'
如果传入HKD则执行
select * from tb where cur like 'HKD'
如果是传入%,则表示查询所有币别。
谢谢!!

解决方案 »

  1.   

    declare @cur char(3)
    set @cur='HKD'/*
    如果传入HKD则执行
    select * from tb where cur like 'HKD'
    */-->哪还LIKE个P呀
    select * from tb where cur = @cur
      

  2.   

    declare @cur char(3) 
    set @cur='%' 
    if @cur like '[%]'
    set @cur=replace(@cur,'%','[%]')
    select * from tb where cur like '%'+@cur+'%' 
      

  3.   

    declare @cur char(3)--> 原来的写法也没错,但是你参数传错了:
    set @cur='HKD'select * from tb where cur = '%' + @cur + '%'
      

  4.   

    set @cur='%'
    select * from tb where cur like '%'+@cur+'%'select * from tb where cur like '%%%'好象转义了。.
        [align=center]====  ====
    [/align]
    .
    贴子分数<20:对自已的问题不予重视。
    贴子大量未结:对别人的回答不予尊重。
    .
      

  5.   

    如果要查询出所有币别,而不是单个币别,则要通用查询
    select *from tb where cur like @cur;

    select * from tb where cur =@cur
    只能查出一种币别
      

  6.   


    declare @cur char(3) 
    set @cur='%' 
    if @cur = '%' 
    select * from tb
    else
    select * from tb where cur like '%'+@cur+'%' 
      

  7.   


    declare @cur char(3) 
    set @cur='%' 
    select * from tb where cur like '%'+isnull(nullif(@cur+'%','%'),'')
      

  8.   

    declare @cur char(3) 
    set @cur='%' 
    select * from tb where cur like '%'+isnull(nullif(@cur+'%','%%'),'') -->写少了一个%
      

  9.   


    --> 晕,改varchar
    declare @cur varchar(3)
    set @cur='%' 
    select * from tb where cur like '%'+isnull(nullif(@cur+'%','%%'),'') -->写少了一个%
      

  10.   

    create table # (cur varchar(100))
    insert # select 'abc'
    insert # select 'def'declare @cur varchar(3) 
    set @cur='%' 
    select * from # where cur like '%'+isnull(nullif(@cur+'%','%%'),'')
    /*
    abc
    def
    */set @cur='abc'
    select * from # where cur like '%'+isnull(nullif(@cur+'%','%%'),'')
    /*
    abc
    */
      

  11.   

    OK,搞定,只要把 @cur char(3)改成 @cur varchar(3)就行了
    不知道为什么要这样
      

  12.   

    http://topic.csdn.net/u/20080521/11/a0cfd2ec-9211-45c6-b7ae-3b23efeb214a.html?seed=1208131122
    这个问题能不能帮看看