有如下需求:
SELECT t1.a,t1.b FROM fcr_inboundadvise t LEFT JOIN fcr t1 ON t1.id=t.fcr_id WHERE t.inboundadvise_id=1000,查出来最多只有两条记录,最少1条记录,如果只有1条记录,t1.a=0,如果有2条记录,一条t1.a=0,一条t1.a=1,现在的需求是如果只有1条,就取那一条,如果有2条,就取t1.a=1的那条。用sql实现,想了2小时没一点头绪,求神龙指导。
后期会有 t.inboundadvise_id in (xx,xx,xx)要求取出各自按上述规则取出的数据。该怎么写sql呢
SELECT t1.a,t1.b FROM fcr_inboundadvise t LEFT JOIN fcr t1 ON t1.id=t.fcr_id WHERE t.inboundadvise_id=1000,查出来最多只有两条记录,最少1条记录,如果只有1条记录,t1.a=0,如果有2条记录,一条t1.a=0,一条t1.a=1,现在的需求是如果只有1条,就取那一条,如果有2条,就取t1.a=1的那条。用sql实现,想了2小时没一点头绪,求神龙指导。
后期会有 t.inboundadvise_id in (xx,xx,xx)要求取出各自按上述规则取出的数据。该怎么写sql呢
解决方案 »
- 关于linux主机名和oracle监听相关问题讨论
- oracle数据库备份,文件总大小200多个G,还有什么办法能让备份文件小一点?
- POSTGRE移植ORACLE问题
- oracle 查询
- 命令提示符登录Oracle导入数据库用什么语句?
- 讨论一下下面的SQL语句优化,分组
- Oracle8 Nvarchar2字段类型读取错误
- 这个建表语句怎么会错呢?请帮帮我
- 如何用ADO方式通过数据链路访问远程库?
- oracle数据库,查询语句中有case函数,在java里用SQLQuery的query.list查询之后,查到的值被缩短了
- 请问关于一个日期的写法 已知yyyy-mm 要求where为月头到月末
- 求助,多对一关联(多列对一列),如何写查询代码,谢谢!
GROUP BY t1.b
-- 把结果按 t1.a 排序,把 1 排在前面,0 排在后面。如果只是一条记录的话, 0 在前面。
select * from (
SELECT t1.a,t1.b FROM fcr_inboundadvise t LEFT JOIN fcr t1 ON t1.id=t.fcr_id WHERE t.inboundadvise_id=1000
order by t1.a desc
)
where rownum = 1