sas学习笔记Word文件下载.docx
- 文档编号:5021415
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:19
- 大小:51.41KB
sas学习笔记Word文件下载.docx
《sas学习笔记Word文件下载.docx》由会员分享,可在线阅读,更多相关《sas学习笔记Word文件下载.docx(19页珍藏版)》请在冰点文库上搜索。
libnamejxsj'
compress=yes;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sas如何连接sql2000数据库
odbc连接方式
建立odbc数据源:
控制面板-管理工具-数据源(odbc)
代码实现:
Libnamejmssqlodbcuser='
sa'
password='
'
dsn=mssql;
Oledb连接方式
代码实现
libnamesqlbaseoledbprovider=sqloledb.1properties=("
DataSource"
=MY3KQFHEPCPN95N"
UserID"
=sa"
Password"
='
"
InitialCatalog"
=KIS_Sample);
输出数据
procprintdata=Jmssql.t_Balance;
2.3sql过程连接关系数据库
定义odbc连接变量
/*%letjx_connect=user='
dsn='
mssql'
*/
定义oledb连接变量
%letjx_connect=user='
provider=sqloledb.1properties=("
=sa"
"
procsql;
validate;
connecttooledb(&
jx_connect);
select*into:
v_sjfromconnectiontooledb
(selectFDatefromt_Voucher);
/*execute(createtablejxcasselect*fromt_Voucher)byoledb;
disconnectfromoledb;
quit;
在表中定义变量并赋值
datawo.bl;
x=2;
y='
abc'
定义变量sf长度为18字符
datawo.custer;
lengthsf$18.;
inputname$sf;
zhangfei1234567890
liubei9123456780
y自动转为数值参加计算
dataqsum;
x=1;
2'
sum=x+y;
连接运算,数字转化为字符
datasubstr;
y=10;
ch='
hellow'
v_sub=ch||y;
字符替换与提取字符
Substr(s,p,n)从字符串s中的第p个字符开始提取n个字符的子串。
datasubstr1;
y=12345678;
转为12位字符,前面填充4个0
ch=substr(y,5,6);
bc=Ktruncate(y,5,6);
ch2=substr(y,5,3);
bc2=Ktruncate(y,5,3);
常量赋值
datacl;
cl1='
iloveyou!
cl2="
i'
mzhangfei"
cl3='
nishi"
xigua"
日期常量
datadtime;
c1='
3mar2012'
d;
c2='
8:
30'
t;
c3='
6apr2012:
18:
30pm'
dt;
procprint;
/*formatc1yymmdd10.c2time10.c3datetime22.;
formatc1yymmdd.c2time.c3datetime.;
if语句
libnamewo'
E:
\sas'
inputid$level$amount5.@;
labelid='
bianhao'
level='
jibie'
amount='
edu'
1001a2000
1002b2003
1003b3000
1004c5000
1005d6000
datawo.aleiwo.bleiwo.clei;
setwo.custer;
iflevel='
a'
thenoutputwo.alei;
elseiflevel='
b'
thenoutputwo.blei;
elseoutputwo.clei;
procprint;
title"
[cleixinyongka]"
读取前3条记录
datawo.new1;
if_n_<
3thenoutputwo.new1;
procprintdata=wo.new1;
[new1xinyongka]"
selectwhen判断语句
select(level);
when('
)outputwo.alei;
)outputwo.blei;
otherwiseoutputwo.clei;
end;
selectwhen修改符合条件的记录
procprintdata=wo.blei;
[bleixinyongka]"
datawo.new2;
select;
when(level='
)level='
m'
n'
otherwiselevel='
s'
procprintdata=wo.new2label;
[new2xinyongka]"
dowhile循环语句:
先判断在执行
datawo.new3;
x=0;
dowhile(x<
11);
x=x+2;
end;
putx=;
x=12
dountil循环语句:
先执行再判断
dountil(x<
x=2
doto循环语言
datawo.new4;
x=0;
doi=1to9by2;
x=i+1;
操作符
y=2**3;
乘方
x=5/2;
除
and&
or|,||连接,!
!
连接
宏变量%let
格式修饰符冒号
对于数据长度大小不定的列,加:
冒号,防止读错列.
对于有空格的列,加&
保留空格
对于有引号,分隔号的列,加~
inputname$address&
:
$20.zone$@;
zhangfeizhongguobeijingfengtaiqu100070
liubeibeijingxichengqu100000
guanyuzhongguoshandong272195
run;
指针控制读取文件
%letlujing='
D:
\jx\tx.txt'
filenametx0"
(&
lujing)"
datanew5;
infiletx0;
input@1qh$4.@5address$17.@22youbian$4.
;
@行控制符号
d:
\jx\credtype.txt'
filenamecred1"
datawo.xinyongka;
infilecred1;
input@20card_type$1.
@;
ifcard_type='
B'
thendo;
input@1credt_bh$3.
@4card_num$16.
;
outputwo.xinyongka;
end;
run;
procprintdata=wo.xinyongkanoobs;
@@换行
datacust_inf;
lengthaddress$20.;
inputname$address@@;
liubeibeijingfengtaizhangyuhuahebeitangxiandongxiaoqingjiangsunanjing
procprintdata=cust_inf;
varnameaddress;
put数据输出到外部文件
\jx\filewrite.txt'
filenamewbsj"
datawo.gs;
infilewbsj;
input@1credt_bh$3.
@4num$16.
@20type$1.
;
\sas\filewrite.txt'
filenamewbsj2"
data_null_;
filewbsj2;
setwo.gs;
put@1credt_bh$3.
@4'
|'
@5num$16.
@21'
@22type$1.
读取外部文件,从第一条到第5条
\sas\test1.txt'
%letfilename="
&
lujing"
datawo.test1;
infile&
filenamemissoverlrecl=300firstobs=1obs=5;
inputf1$
f2$
f3$
;
输出数据到外部文件
setwo.test1;
file'
\sas\test2.txt'
putf1$
s'
f2$
b'
f3$
在mssql中建表
createtablejx_inf(idchar(8),hostvarchar(15),addressvarchar(30),feesnumeric(5,1),time_lennumeric(4),arrears_countnumeric(3),last_mtimeldatetimedefaultgetdate(),curr_mtimeldatetime,next_mtimeldatetime);
insertintojx_infvalues('
12345676'
'
刘小红'
北京市丰台区丰台总部'
300,20,7,CONVERT(varchar(100),'
2014-04-1709:
01:
10'
20),convert(varchar(100),'
2014-04-1610:
20),convert(varchar(100),'
2014-04-1812:
20))
将数据库中的表输出到文件
%leta='
MY3KQFHEPCPN95N'
%letb='
%letc='
%letd='
testdb'
libnamemyku1oledbprovider=sqloledb.1properties=("
=&
a"
b"
c"
d);
%letout='
\sas\cust_inf.dat'
file&
outlrecl=134;
setmyku1.jx_inf;
put@1id$8.
@9'
@10host$15.
@25'
@26address$30.
@56'
@57fees5.1
@62'
@63time_len4.0
@67'
@68arrears_count3.0
@71'
@72last_mtimeldatetime8.1
@80'
@81curr_mtimeldatetime8.1
@89'
@90next_mtimeldatetime8.1
@98'
注意:
日期无法显示
读取bat文件,‘,’为分割符
\jx\bl.dat'
filenamewbwj"
databl;
infilewbwjdlm='
lengthfh$50.;
inputbh$fhjylcssr;
读取日期格式
datacard1;
inputid$name$dtdate.;
cards;
1001gaoxiaohong10mar12
1002liuxiaoxia18mar12
procprintlabel;
formatdtyymmdd10.;
informat与format定义格式
datacard2;
informatdtmmddyy10.;
lengthdq$30.;
inputdq$dt;
beijing10-23-2010
shandong09-08-2011
数组
datatt;
arraytemp1
(2)$('
);
y=temp1
(2);
puty=;
系统选项option
%macrodefine_op(v_bh);
optionobs=2compress=yes;
optionmlogicmprint;
%letdir='
\jx\bl.bat'
dir)"
datablsj;
inputbh$fhjylcssr;
procsql;
select*fromblsjwherebh=&
v_bh;
%menddefine_op;
%define_op('
01002'
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sas 学习 笔记