sassql語句
① SAS庫欄位更新問題 如何使用sql的replace函數更新SAS資料庫中的欄位,具體如下
SAS沒有replace函數,有字元替換功能的倒是translate函數。試試下面的程序:
proc sql;
update t
set f=translate(f,'-','_');
quit;
② 用sql語句出現都表中ID出現多次
思路大概是這樣:
實用ltrim或者rtrim函數去掉左邊或右邊符合條件的字元。
如果是oracle環境,看你這里都是字母在前數字在後的格式,假設舊列叫 col_old,新的字母列是col_str,新的數字列是col_num
update table1 set
col_str=rtrim(col_old,'1234567890'),
col_num=to_number(ltrim(col_old,rtrim(col_old,'1234567890')))
sql server 有沒有這個函數不知道了,反正這是一個思路吧。供參考而已
sql沒有這個東西,那我就給你提個思路吧,語句你自己寫了,我沒有環境。
用ASCII碼和sql的ltrim和rtrim來做,你需要循環找到從左起每個字元都是ASCII
③ sas數據集的行叫什麼
解釋如下
在SAS進行數據分析的過程中經常需要調用數據集的行數和列數,有很多方法。本文就sql語句進行示例說明。
datatest;
setsashelp.class;
run;
*行數nobs;
procsql;
selectnobsinto:nobs
fromdictionary.tables
wherelibname="WORK"andmemname="TEST";
quit;
%put&nobs;
*列數nvar;
procsql;
selectnvarinto:nvars
fromdictionary.tables
wherelibname="WORK"andmemname="TEST";
quit;
%put&nvars;
注意1:procsql語句包含三個語句格式為:
procsql;select...into...from...where...;quit;
注意2:查看行用nobs查看列用nvar
注意3:庫名和數據集名要大寫:WORK,TEST
注意4:在log窗口顯示調用是用%put語句
注意5:into後面的nobs和nvars是可以自己命名的變數