前言
最近剛好有要在SQL Server中Left Join N筆結果排序後只取得第一筆的需求。
發現Left Join資料結果會有問題,所以發現了Outer Apply作法能夠達到,因此筆記一下。
實作
需求:
撈出每位使用者還沒完成的最早一筆任務。
並以Priority做排序,如果遇到相同層級則以最早新建的資料為主。
Todos資料表:
Users資料表:
sql:
1 | SELECT |
執行結果:
總結
SQL Server有些特殊語法,有時真的得在實作時才會真的碰到。(坑)
最近剛好有要在SQL Server中Left Join N筆結果排序後只取得第一筆的需求。
發現Left Join資料結果會有問題,所以發現了Outer Apply作法能夠達到,因此筆記一下。
需求:
撈出每位使用者還沒完成的最早一筆任務。
並以Priority做排序,如果遇到相同層級則以最早新建的資料為主。
Todos資料表:
Users資料表:
sql:
1 | SELECT |
執行結果:
SQL Server有些特殊語法,有時真的得在實作時才會真的碰到。(坑)