任何人都可以建议将表从SAS库INTO传递到oracle数据库的语法?
下面的示例代码(虽然显然无法以这种方式引用与WORK库的连接)
PROC SQL noprint;
connect to ODBC as X (dsn='ALIAS' uid='USER1' pwd='passwd' quote_char='');
exec (CREATE TABLE Test AS
SELECT * from WORK.MY_SAS_TABLE
)by X;
disconnect from X;
quit;
Run Code Online (Sandbox Code Playgroud)
我正在尝试将datetime22.3变量转换为ddmmmyy10.在proc sql中,这在输出列中给了我******.
如何在输出列中获取正确的值?
我有一个看似非常简单的问题(可能是......),但我无法让它工作.
数据集"列表"中的变量"name"的长度为20.我希望有条件地将值选择为宏变量,但通常所需的值小于指定的长度.这会在最后留下尾随空白,这是我不能拥有的,因为它们会破坏宏变量的未来调用.
我已经尝试了修剪,压缩,btrim,左(修剪和其他解决方案,但似乎没有任何东西给我我想要的东西(这是'乔'没有空白).这看起来应该比它更容易...... .. 救命.
data list;
length id 8 name $20;
input id name $;
cards;
1 reallylongname
2 Joe
;
run;
proc sql;
select trim(name) into :nameselected
from list
where id=2;
run;
%put ....&nameselected....;
Run Code Online (Sandbox Code Playgroud) 如何在proc sql中获取观察的行号,类似于procsql中的datastep的_N_?
例如
proc sql outobs=5;
select case mod(<something>, 2)
when 0 then "EVEN"
else "ODD"
end
from maps.africa
end;
Run Code Online (Sandbox Code Playgroud)
想:
Row
----------
1 odd
2 even
3 odd
.
.
.
Run Code Online (Sandbox Code Playgroud) 例如,我有一个数据集如下:
id Date
1 2000/01/01
1 2001/01/01
1 2002/01/01
2 2003/01/01
Run Code Online (Sandbox Code Playgroud)
通过datastep或sql,我如何获得id = 1和最新日期2002/01/01的记录?感谢您的帮助,并提前致谢.
我有一些相当简单的SQL应该每个资产每季度提供1行1.相反,我每组获得多行.
下面是SQL,SAS数据步骤和一些输出数据.重复行的数量(在下面的数据中,227708)等于Num_borrowers,它是asset1的行数.
proc sql outobs=max;
create table table1 as
select
case
when period_dt ='01DEC2003'd then '2003Q4'
when period_dt ='01DEC2004'd then '2004Q4'
when period_dt ='01DEC2005'd then '2005Q4'
when period_dt ='01DEC2006'd then '2006Q4'
when period_dt ='01DEC2007'd then '2007Q4'
when period_dt ='01DEC2008'd then '2008Q4'
when period_dt ='01DEC2009'd then '2009Q4'
when period_dt ='01DEC2010'd then '2010Q4'
when period_dt ='01DEC2011'd then '2011Q4'
when period_dt ='01DEC2012'd then '2012Q4'
when period_dt ='01DEC2013'd then '2013Q4'
when period_dt ='01JUN2014'd then '2014Q2'
end as QTR,
case
when MM_ASSET in ('C&I', 'Foreign', …Run Code Online (Sandbox Code Playgroud) 我有一个SAS数据集,其中包含文本字段customer_id和month格式中的数字字段YYYYMM.我正在创建这些数据的视图,我想将数据转换为标准的SAS日期(希望在导出时保留).例如:
proc sql;
create view my_view as
select customer_id, month from raw_dataset;
quit;
proc export data = my_view
file = "out.dta"
dbms = stata replace;
quit;
Run Code Online (Sandbox Code Playgroud)
查看日期文档,看起来数字在表单中(虽然不是数据类型)YYMMN.,但我希望它采用SAS可以作为日期使用的格式,而不仅仅是数字,例如proc expand.
我已经看到了很多使用put和的组合的问题datepart,但是由于我不希望变量作为字符串而且还没有日期时间变量,所以我不确定如何应用它们.
运行此SQL查询时,如何将此列转换为SAS日期数据类型?
我怎么写sas:
proc sql;
create table THIS as
select *
from MAIN(keep=id col1 -- col34)
where (AT LEAST ONE OF THE COLUMNS contains 1) ;
;
Run Code Online (Sandbox Code Playgroud)
我有一个问题,弄清楚如何写最后一行bc我想保留所有列,所以我不只是检查一列,我想检查所有列.
我对 SAS 很陌生。
我想将数字转换为字符。
基本上我想使用 to_char 函数
所以我尝试
proc sql;
select put(A.column,$11.) as new_column
from table A
quit;
Run Code Online (Sandbox Code Playgroud)
这导致错误,
将数字转换为字符的正确方法是什么???
帮助理解为什么错误的内部查询不会使外部查询错误
以下查询返回19
proc sql;
select count(distinct name)
from sashelp.class
where name in (select name from sashelp.iris
where species is not missing)
;quit; *returns 19;
Run Code Online (Sandbox Code Playgroud)
但是,我希望它会返回一个错误,因为内部查询确实会返回一个错误(因为在sashelp.iris中找不到“名称”列):
proc sql;
select name from sashelp.iris
where species is not missing
;quit; *returns an error (column not found);
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下为什么我一开始没有收到错误消息的逻辑吗?