表名: stu_card结构和值如下:card_name   card_value
----------------------------
aa              100
aa              0
bb              100
bb              0
cc              100
dd              0
ee              100
ee              0
ff              100
gg              0只有这一个表,需要从中找出值只有100的记录。如cc,ff得到结果如下
card_name   card_value
----------------------------
cc              100
ff              100

解决方案 »

  1.   


    select * from stu_card where card_value = 100
      

  2.   

    加个子查询,统计只有一条数据的有哪些,然后查询值为100且属于刚才那条子查询结果集的结果。长久没写SQL,语法忘记了。
      

  3.   

    用集合查询的交集 看看 
    关键字 intersect
      

  4.   

    select * from stu_card where card_value = 100
                     and card_name in('cc','ff')
      

  5.   

    select * from stu_card where card_name in (select card_name from stu_card group by card_name having count(card_name ) = 1) and card_value = 100哈哈,刚入门!也很久没写了!凭印象写的!可能有问题!有问题跟我说下
    一起进步
      

  6.   

    SELECT * from stu_card WHERE card_value=100
    and card_name not in (
    select card_name from stu_card where card_value=0 )
      

  7.   


    select * from stu_card where card_value=100 and card_name not in(select card_name from stu_card group by  card_name having count(*) > 1)
      

  8.   

    card_value得值只能是0或者100吗,没有其他值吗?
      

  9.   

    select * from stu_card where card_name in (select card_name from stu_card group by card_name having count(card_name)=1) and card_value=100;
      

  10.   

    想不出了,sql采用集合操作方式,每次查找的结果都是元组的集合,只能分两次来查询
      

  11.   

    select * from stu_card group by card_name having count(card_name)=1 and card_value=100;