楼主: qiao2000
8606 3

[原创博文] SAS sql语句中,如何使用数据库的sql函数 [推广有奖]

  • 1关注
  • 0粉丝

博士生

11%

还不是VIP/贵宾

-

威望
0
论坛币
1 个
通用积分
4.2000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
3473 点
帖子
72
精华
0
在线时间
384 小时
注册时间
2007-3-14
最后登录
2024-4-9

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在SAS在处理数据时,可从数据库中提取明细数据,然后在SAS端来处理和加工;能否利用数据库sql语句自身的函数,在数据端先处理,然后在SAS端进一步加工。比如:oracle 数据库sql语句使用 to_char(datatime,'yyyy-mm-dd')函数:

select  to_char( datatime_var1 , 'yyyy-mm-dd')  data1
from tablename
where  to_char( datatime_var1 , 'yyyy-mm-dd') >= '2011-01-01'

如果直接放在SAS sql 中,运行:
proc  sql ;
create table  table_name as
         select  to_char( datatime_var1 , 'yyyy-mm-dd')  data1
        from tablename
        where  to_char( datatime_var1 , 'yyyy-mm-dd') >= '2011-01-01'   ;
quit;

SAS提示错误信息:没有to_char这个函数。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:sql语句 如何使用 使用数据 sql 数据库

沙发
qiao2000 发表于 2011-11-11 16:06:40 |只看作者 |坛友微信交流群
怎么就没有人知道呢

使用道具

藤椅
soporaeternus 发表于 2011-11-11 17:12:09 |只看作者 |坛友微信交流群
connect to oracle;
类似这样写法的一种连接方式,可以将SAS当作oracle的客户端,直接使用oracle的sql语句
Let them be hard, but never unjust

使用道具

板凳
it2finance 发表于 2014-1-16 08:42:30 |只看作者 |坛友微信交流群
这个问题也困扰过我半天,我把SQLServer里头可运行的sql语句原封不动搬到sas中后不能运行,主要问题出在一些数据库自定义函数上边。由于sas数据类型只有文本型和数值型,数据库中的datetime字段最后也会被映射为数值型(日期表示为与1960年1月1日的相差天数)。

如果要在sas中转让“yyyymmdd”文本型,可以用put(datepart(a.REPORTDATE), yymmddn8.),其中datepart是sas里截取年月日的内嵌函数,put为数据类型转换,当时baidu、google都找不到解决方案,耗费了快1天时间,最后看sas帮助不断试出来的。开始时因为没有套datepart函数,老是报错“日期值越界”,发现是因为datetime包含了时分秒(hh:mm:ss)所导致的。

备注:sas里头的sql其实不完全是标准sql语法,比如可以在字段后边加上label、等限定语句format等,具体看F1帮助说明。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-12 15:29