关于sql 查询语句select

如上表,我想把A字段先做分组,如上表可以分两组111和222,我想select出分组中如果B字段不含d数据的结果集。如上表,要返回的是222。... 如上表,我想把A字段先做分组,如上表可以分两组111和222,我想select出分组中如果B字段不含d数据的结果集。如上表,要返回的是222。 展开
 我来答
WHITE_WIN
2013-06-04 · TA获得超过6111个赞
知道大有可为答主
回答量:3759
采纳率:50%
帮助的人:1913万
展开全部

就是说,只要B含有d,整个组都不显示,否则显示该组:

select * from tablename where A not in(select A from tablename where B='d')
maxiao071
2013-06-04 · 超过15用户采纳过TA的回答
知道答主
回答量:43
采纳率:100%
帮助的人:34.9万
展开全部
select distinct A from table_name
where instr(b,'d') <=0 ;
instr()是判断b字段是否含有‘d’字符,含有的话 会返回所在位置,不含d的话 值是0;
追问
可能我描述不好,我意思是相同分组中,只要有一条记录的B字段有'd',就剔除。比果,111分组中,第五条记录B字段是'd',那就剔除所有111的记录。222分组中四条记录的B字段都没有‘d’,就返回222(返回结果集只要A字段的数据)
追答
select distinct A from table_name tn1,table_name tn2

where
tn1.A=tn2.A
and

Not EXISTS(slect 1 from table_name where instr(tn2.B,'d')>0);
写得复杂了。。。
楼上的简单些
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a800768
2013-06-04 · TA获得超过1841个赞
知道大有可为答主
回答量:1928
采纳率:0%
帮助的人:1727万
展开全部
SELECT ......FROM ......
WHERE C NOT LIKE"%d%"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式