EXECUTE IMMEDIATE來動態寫 SQL (
為什麼要動態 SQL?我覺得更好的問題是為什麼寫 SQL要被限制?我能不能Query任意資料集的任意表格?
官方文件連結:點我 (2022–04–30檢查發現連結壞了)
以下舉個我自己遇到的情況。
遇到資料重複真的好討厭,要怎麼找出不重複的資料?
希望你看到問題至少有想到 Group by,代表你至少有基礎的 SQL知識,不然應該要回去學習基礎,我推薦 w3school(無業配),我自己最早也是在這裡學,真心推薦。
-- 方法1SELECT A, B, ... ,ZFROM tableGROUP BY A, B, ... ,Z
我們可以使用 Create or replace table來建立或重建表格(BigQuery:利用 Create or replace table創建表格),但如果只是要更新最新一段時間的資料,或是不想動到歷史資料可以做?
我發現搜尋 Refactor meme會找到超多謎因,如果你多數都能看懂,也代表你掌握了重構的知識之外,還踩過很多坑 XD
我們學會了將部分程式碼包裝成 table function來應用,最後執行的結果是否能儲存成一張表呢?
Table function用在 FROM後面的資料來源
Create table用在真的產出表格
有了 procedure我們就能確保任何時候呼叫能得產出一樣的結果,但如果我不只是要結果,而是要把結果再做進一步的應用呢?
同一類型的運算塞在 table function
最後要顯示的結果放在 procedure
有了之前講過的 With,易讀性提昇了,但每次要使用就要寫一次嘛?這樣 Code散落各地會很不好管理。
使用 Procedure的優點