求一条语句 需要用到循环

tjcloving 2006-06-23 11:17:15
表 test:
ID PRODUCT NUM
1 A 10
1 B 10
1 C 10
2 A 20
2 B 20

查询输出后:
ID PRODUCT NUM
1 A 10
1 B
1 C
2 A 20
2 B

也就是说同一个ID不管PRODUCT 只要NUM有值 只出现一次 其余都为空
通过where exists()可以实现 但是如果数据量过大 速度太慢 所以我现在需要大家帮忙通过循环来实现这个功能 谢谢
...全文
124 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tjcloving 2006-06-23
  • 打赏
  • 举报
回复
谢谢你们的关注 我都说过了 如果数据量大的话 这样做速度太慢 我希望用变量和循环实现
gohst001 2006-06-23
  • 打赏
  • 举报
回复
上面的有问题 ,修改一下
select a.ID,a.PRODUCT,case when n is null then null else num end as num from test a left outer join
(select ID,min(PRODUCT) as PRODUCT,'1' as n from test where not num is null group by ID,PRODUCT) b
on a.ID=b.ID and a.PRODUCT=b.PRODUCT
imzhu 2006-06-23
  • 打赏
  • 举报
回复
楼上的应该能满足楼主的要求
gohst001 2006-06-23
  • 打赏
  • 举报
回复
select a.ID,a.PRODUCT,num from test a left outer join
(select ID,min(PRODUCT) as PRODUCT from test where not num is null group by ID,PRODUCT) b
on a.ID=b.ID and a.PRODUCT=b.PRODUCT
EastboyEastboy 2006-06-23
  • 打赏
  • 举报
回复
select a.id,a.product,b.num
from test1 a left join
(select distinct id,min(product) as product,num from test1 group by id,num) b on a.id = b.id and a.product = b.product

一楼group by 后面有误

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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