[SAS-S2.1] SQL Procedure

  • PROC SQL; 開始, 用 QUIT; 結束 (不是 RUN;)
  • SQL procedure 讀一段執行一段 (辨異: SAS steps 遇到 RUN; 才會執行)
PROC SQL <選項> ;
陳述式 (statements);
QUIT;
  • Select statement
    • 很長一段, 可以寫很多小子句
    • 因為在同一個 statement 裡, 所以分號只要寫最後一個就好 (初學常誤加分號)
    • select / from / where / group by / having / order by 順序是固定的, 不能換
    • 一定要有 select 和 from, 其他不一定要
    • 最後會跑出一個 output (不會變成資料表)
PROC SQL; 
 select 變數1, 變數2, ..., 變數n (逗號分隔, 和 SAS DATA step 空格分隔不同)
  from 來源資料表 (上限 256 個)
  where 滿足條件再抓進來
  group by 分組依據
  having 篩選組別依據
  order by 排序依據
 ;
QUIT;
  • 在 select 前寫 validate, 執行後會檢查該 statement 有無語法錯誤, 並寫成 log
  • PROC SQL noexec; 會變成檢查所有 statements 的語法錯誤, 並寫成 log, 不真的執行
  • PROC SQL 常接的 statements
    • select 要抓哪些變數輸出
    • create 建表格, 索引
    • describe 展示表格屬性來源
    • insert 在資料表寫入新資料
    • reset 不重跑, 就能回復設定