2025年4月10日 星期四

透過 OUTER APPLY 語法取得資料

有個需求是,在一對多的歷史資料表中,找出該員工最早或最後刷卡時間,並且在單一筆呈現



先來看 OUTER APPLY 語法是甚麼,以下透過 ChatGPT





假設有個資料 employees


有個打卡紀錄的資料表 clocks


我希望撈出員工的最早跟最晚的打卡時間,並且單一筆呈現,如下所示



語法如下



若是使用 CTE 的方式來達到效果,如下所示




兩者的比較



結論

  • 小型查詢、需求單純 ➜ OUTER APPLY 是好選擇

  • 要擴充排名功能、需要過濾欄位 ➜ ROW_NUMBER() + CTE 會更穩健



參考





沒有留言:

張貼留言