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是可以自己命名的变量