ORACLE sql语句的问题

zhaozheng821018 2009-10-12 09:35:40
现在有表A(barcode varchar2,length number),B(barcode varchar2,serial number)其中barcode关联A:B为1:n

有如下sql语句
insert into a values('b1',10)
insert into a values('b2',20)
insert into a values('b3',30)
insert into b values('b1',1)
insert into b values('b2',2)
insert into b values('b2',3)
insert into b values('b3',4)
insert into b values('b4',5)
insert into b values('b4',6)

在执行sql
select a.barcode,a.length,b.serial from a,b where a.barcode=b.barcode
结果如下

barcode length serial
b1 10 1
b2 20 2
b2 20 3
b3 30 4
b3 30 5
b3 30 6

能否有sql实现下面的结果:

barcode length serial
b1 10 1
b2 20 2
b2 0 3
b3 30 4
b3 0 5
b3 0 6
就是当B表的有多条记录和A表对应时,只显示第一个记录的长度,其他的都为0


...全文
59 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
shiyiwan 2009-10-12
  • 打赏
  • 举报
回复
case when exists (select 1 from b b1 where b1.barcode = b.barcode and b1.serial < b.serial) then 0 else b.length end length

试试这个

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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