sqlserver A字段相同的多条记录 取B字段等于某个值的记录 怎么写sql
例如:表1A---B1Null24253Null35通过sql想选出1Null2535请大神帮忙!这里是取B字段等5的...
例如: 表1
A --- B
1 Null
2 4
2 5
3 Null
3 5
通过sql想选出
1 Null
2 5
3 5
请大神帮忙!
这里是取B字段等5的 展开
A --- B
1 Null
2 4
2 5
3 Null
3 5
通过sql想选出
1 Null
2 5
3 5
请大神帮忙!
这里是取B字段等5的 展开
4个回答
展开全部
select
A,
case when isnull(max(b),0)>0 when max(b) else null end b
from
表1
group by
A
追问
不是取B字段最大的 是取B字段等于某个字段的 不一定是最大的
实际的A、B字段都是uniqueidentifier类型的 这里举例的都是数字
追答
那是你示例数据和结果数据写的有问题,
请正确描述其需求
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1 Null 为什么也要选出来?
直接
select A,B from 表1 where B = 5
不行?
直接
select A,B from 表1 where B = 5
不行?
更多追问追答
追问
这个表里边的都要选出来
A字段有重复的只选B字段等于5的出来
没有1 5的话 1 Null就要选出来
追答
create table #baseData (
A int,
B varchar(50)
)
insert into #baseData values (1, Null)
insert into #baseData values (2, 4)
insert into #baseData values (2, 5)
insert into #baseData values (3, Null)
insert into #baseData values (3, 5)
;with table1 as(
select A from #baseData group by A having COUNT(A)>1)
select * from #baseData where A not in (select A from table1)
union all
select * from #baseData where A in (select A from table1) and B = 5
drop table #baseData
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from 表1 where A not in(select A from 表1 where B ='5') UNION (select * from 表1 where B ='5')
兄弟看看是这么个意思不?
兄弟看看是这么个意思不?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-03-01
展开全部
那如果不是 1 null 是1 4,1 4是不是也要选出来?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询