在早期的做法,我們的直覺就是直接跑一個cursor,分別取得每一筆資料該欄位的值後送進user defined function,取得相對應的資料後,塞入一個暫存的資料表。等cursor 跑完後,最後再一次select 暫存資料表取得資料。
現在,其實不用。SQL Server 提供一個指令非常好用 – APPLY。舉例而言,我們資料庫中有一支UDF,依輸入的user id 取得該user 隸屬的群組,如下圖所示:![]()
好了,接下來假設我們有一個需求是要取得所有使用者的群組資料。該怎麼處理呢?我們可以利用 APPLY 指令,非常簡單的達到這項功能![]()
指令如下:
SELECT * FROM dbo.AA_User
CROSS APPLY dbo.f_GetLoginGroup(UserID)在dbo.f_GetLoginGroup 的參數,請指定APPLY 之前的資料表某個欄位即可
0 意見:
張貼意見