你也错了吗!select * from [news] where '3' in (grade)
==>  --改为
select * from news where '3' in (select garde from news)

解决方案 »

  1.   

    怎么会呢!?
    --Test
    create table news
    (
       garde int
    )insert news select 1
    insert news select 3
    insert news select 4
    insert news select 7select * from news where '3' in (select garde from news)
    select * from news where '3' in (1,3,4,7)
      

  2.   

    grade 是varchar 类型的  他的第一行的内容是 1,3,4,7
                                  二行………… 4,5,7
                                  三行………… 3,5
      select * from news where '3' in (select garde from news) 的结果应该是把 第一行和第三行的内容输出 这是所希望的
      

  3.   

    create table news
    (
       garde varchar(10)
    )insert news select '1,3,4,7'
    insert news select '4,5,7'
    insert news select '3,5'select * from news where charindex('3',garde)>0
      

  4.   

    或者
    select * from news where garde like '%3%'
      

  5.   

    select * from news where charindex('3',garde)>0
      

  6.   

    select * form news where 3 in (1,2,3,4)orselect * from news where '3' in ('1','2','3','4')