有個需求是,在一對多的歷史資料表中,找出該員工最早或最後刷卡時間,並且在單一筆呈現
先來看 OUTER APPLY 語法是甚麼,以下透過 ChatGPT
假設有個資料 employees
有個打卡紀錄的資料表 clocks
我希望撈出員工的最早跟最晚的打卡時間,並且單一筆呈現,如下所示
語法如下
若是使用 CTE 的方式來達到效果,如下所示
兩者的比較
結論
小型查詢、需求單純 ➜ OUTER APPLY 是好選擇
要擴充排名功能、需要過濾欄位 ➜ ROW_NUMBER() + CTE 會更穩健
參考
沒有留言:
張貼留言