求一sql语句,大家来帮忙

好大一只鸭 2013-04-16 05:50:42
一个表Test
A B
1 001
1 002
2 011
2 003

第一步:查出B列数据开头两个字符为“00”的数据

查完应该是:
A B
1 001
1 002
2 003

第二步:将查出的数据与原来的表进行比较,若A列每个值相同数据的个数与第一步查出来的相同则显示出来(因为在第一步中Test表中低三行被筛选掉了,与原来的数据量不符合,所以第二步后就查不出来)

结果应该是:

A B
1 001
1 002
...全文
225 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
小直先森 2013-04-17
  • 打赏
  • 举报
回复
我是来学习的
炜旭 2013-04-17
  • 打赏
  • 举报
回复
select * from test where A in (select A from test where b link '00%' group by a having count(*)>1 )
hm2012 2013-04-17
  • 打赏
  • 举报
回复
select * from test where A IN (
select A from test where left(b,2)='00' group by A having count(*)>1)
不知道符合楼主的意思不
好大一只鸭 2013-04-17
  • 打赏
  • 举报
回复
引用 4 楼 DingZaL 的回复:
引用 2 楼 xxzxwsx 的回复:SELECT * FROM TEST WHERE B LIKE '00%' AND A NOT IN (SELECT A FROM TEST WHERE B NOT LIKE '00%') 这个题目要换个思路来思考,在第一步:查出B列数据开头两个字符为“00”的数据时,有一部分B列数据不符合要求,A列值相同数据的个数减少,就不……
好像没说明白,第一步过后 A列值为1的两行可以查出来,但值为2的两行由于被筛选掉了一行,所以就查不出来了。。。
习惯性蹭分 2013-04-17
  • 打赏
  • 举报
回复
引用 1 楼 Haiwer 的回复:
SELECT * FROM TEST A WHERE B LIKE '00%' AND NOT EXISTS ( SELECT 1 FROM TEST B WHERE B.A = A.A AND NOT (B.B LIKE '00%') ) 逻辑是一样的
好想法。
DingZaL 2013-04-16
  • 打赏
  • 举报
回复
引用 2 楼 xxzxwsx 的回复:
SELECT * FROM TEST WHERE B LIKE '00%' AND A NOT IN (SELECT A FROM TEST WHERE B NOT LIKE '00%')
这个题目要换个思路来思考,在第一步:查出B列数据开头两个字符为“00”的数据时,有一部分B列数据不符合要求,A列值相同数据的个数减少,就不可能出现相同个数。
dengixnyu 2013-04-16
  • 打赏
  • 举报
回复
select a,b from test where B like '00%' and test.a not in( select a from ( select a,b from test except select a,b from test where B like '00%')tb1 )
在路上_- 2013-04-16
  • 打赏
  • 举报
回复

SELECT * FROM TEST
WHERE B LIKE '00%'
    AND A NOT IN (SELECT A FROM TEST WHERE B NOT LIKE '00%')
昵称被占用了 2013-04-16
  • 打赏
  • 举报
回复
SELECT * FROM TEST A WHERE B LIKE '00%' AND NOT EXISTS ( SELECT 1 FROM TEST B WHERE B.A = A.A AND NOT (B.B LIKE '00%') ) 逻辑是一样的

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧