我想从数据表里选择出一个满足如下条件的纪录,条件是jgid在@dqid_sql里的记录都算数,jgid是数字也可能是%,@dqid_sql里也可能是数字或者%,下面的语句有问题,请大家帮帮忙! select * from A_JG where ( (charindex(convert(varchar(15),jgid),@dqid_sql )>=0) or charindex('%',@dqid_sql) >=0) 

解决方案 »

  1.   

    charindex(...)>=0,这样写WHERE始终为真.改成charindex(...) > 0试试.
      

  2.   

    人员职工一  职工二  职工三
    a       b       c
    b       a       d
    c       a       c
    e       c       d
    最后要得到的是
    职工
    a
    b
    c
    d
    e这样的结果
      

  3.   

    条件是jgid在@dqid_sql里的记录都算数,  --是不是说jgid=@dqid_sql,还是说jgid在 
                                           --@dqid_sql里的记录都算是数字类型
    jgid是数字也可能是%,
    @dqid_sql里也可能是数字或者%
    select * from A_JG where ( (charindex(convert(varchar(15),jgid),@dqid_sql )>=0) or charindex('%',@dqid_sql) >=0)
    ===============================================
    不好意思,没理解LZ的意思select *
    from A_JG
    WHERE jgid=@jgid
      

  4.   

    不知道这个行不行呢?select * 
    from A_JG 
    where jgid LIKE '%'+@jgid+'%' ESCAPE '%'