oracle 满足条件取第一行,sql – 如何只选择满足条件的第一行?
生活随笔
收集整理的這篇文章主要介紹了
oracle 满足条件取第一行,sql – 如何只选择满足条件的第一行?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
您可以使用分析查詢:
select *
from (
select p.*, v.*,
row_number() over (partition by p.id order by v.userid) as rn
from prmprofile p
join user v on v.profile = p.id
where p.language = 0
and v.userid like '%TEST%'
)
where rn = 1;
內部查詢獲取所有數據(但使用*不理想),并添加一個額外的列,在每個p.id值上分配行號序列.它們必須按某種順序排序,而你還沒有說出是什么使得某一行成為“第一”,所以我猜對了用戶ID – 你當然可以將其更改為更合適的行,這將在查詢重新運行. (您可以查看rank和dense_rank以獲取選擇’first’行的替代方法).
外部查詢只是將結果集限制為額外列的值為1的那些,這將為每個p.id提供一行.
另一種方法是使用子查詢來標識“第一”行并加入到該行,但不清楚標準是什么以及它是否足夠有選擇性.
總結
以上是生活随笔為你收集整理的oracle 满足条件取第一行,sql – 如何只选择满足条件的第一行?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分包组包 北斗通信_蓝牙mesh底层传输
- 下一篇: BugkuCTF-WEB题GET和POS