假如有一张表有2字段,user,和state,state可以的取值有1,2,3
表里数据大致这样:
user state
zhang 1
zhang 2
zhang 1
li 1
li 2
qiang 1
wang 1
wang 1我要实现如下效果,查询出state全为1的user,把列出来。
向上面数据,查询结果就显示:
qiang
wang
表里数据大致这样:
user state
zhang 1
zhang 2
zhang 1
li 1
li 2
qiang 1
wang 1
wang 1我要实现如下效果,查询出state全为1的user,把列出来。
向上面数据,查询结果就显示:
qiang
wang
楼主【try_hard_2008】截止到2008-07-16 11:42:19的历史汇总数据(不包括此帖):
发帖的总数量:33 发帖的总分数:590 每贴平均分数:17
回帖的总数量:57 得分贴总数量:12 回帖的得分率:21%
结贴的总数量:33 结贴的总分数:590
无满意结贴数:1 无满意结贴分:20
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:3.03 % 无满意结分率:3.39 %
敬礼!
结果就成了
zhang
li
qiang
wang
user
from table
where state=1
and user not in
(select user from table where state<>1)
大致思路是这样,不知道sql语法会不会有错
user
from table
where state=1
and user not in
(select user from table where state<>1)
大致思路是这样,不知道sql语法会不会有错
select user from (select user, sign(sum(state1)) state from (select decode(state,'1','0','1') state1 from table) group by user) where state='0' ;
保证有用,就是效率可能地点,还没研究到那份上.
你试试 先查出满足state为1的结果集,然后把该结果集看做一个表,再进行你想要的效果过滤.
(select distinct user from table where state=1)
minus
(select distinct user from table where state!=1)
Select t.user from table t where t.user=1 --检索所有是1的
and
not exists(select 1 from talbe_name t1 where t1.state=2 and t.user=t1.user) --过滤也有2状态的跟用in是一个道理
minus
(select distinct user from table where state!=1)
select distinct user from table where state='1'
或
select user from your_table where state='1' group by user;
no exists(select 1 from table where state = '2' and user = t.user)
楼主试试看。
或则22楼所说的
不过我试过了
sql2000 提示错误..
好象没这个关键字..
mssql 2000可能不支持吧,我平时都使用的oracle ^_^
minus
(select distinct user from table where state!=1)