标签: proc-sql

SAS到Oracle ODBC - 将SAS表传入INTO数据库

任何人都可以建议将表从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)

这里提出类似的问题,但似乎与SQLSERVER连接有关,而不是与oracle有关.

oracle odbc sas proc-sql

4
推荐指数
1
解决办法
8391
查看次数

在proc-sql sas中将datetime转换为date

我正在尝试将datetime22.3变量转换为ddmmmyy10.在proc sql中,这在输出列中给了我******.

如何在输出列中获取正确的值?

sas proc-sql

4
推荐指数
1
解决办法
4万
查看次数

SAS Proc SQL Trim不工作?

我有一个看似非常简单的问题(可能是......),但我无法让它工作.

数据集"列表"中的变量"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)

trim sas proc-sql

4
推荐指数
2
解决办法
1429
查看次数

SAS Proc sql行号

如何在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)

sql sas proc-sql

4
推荐指数
1
解决办法
1万
查看次数

SAS datastep/SQL从具有相同ID的多个记录中选择最新记录

例如,我有一个数据集如下:

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 sas proc-sql datastep

3
推荐指数
1
解决办法
1万
查看次数

SAS proc sql按变量返回group by/order的重复值

我有一些相当简单的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)

sql sas proc-sql

3
推荐指数
1
解决办法
6276
查看次数

如何使用PROC SQL将类似200012的数字列转换为SAS日期变量?

我有一个SAS数据集,其中包含文本字段customer_idmonth格式中的数字字段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日期数据类型?

date sas proc-sql

3
推荐指数
1
解决办法
1061
查看次数

使用proc sql,其中至少有一列是一个值

我怎么写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 where-clause proc-sql

3
推荐指数
1
解决办法
132
查看次数

SAS Proc SQL如何从数字转换为字符

我对 SAS 很陌生。

我想将数字转换为字符。

基本上我想使用 to_char 函数

所以我尝试

proc sql;
select put(A.column,$11.) as new_column
from table A
quit;
Run Code Online (Sandbox Code Playgroud)

这导致错误,

将数字转换为字符的正确方法是什么???

sas proc-sql

3
推荐指数
1
解决办法
5万
查看次数

为什么错误的内部查询不会使外部查询错误

帮助理解为什么错误的内部查询不会使外部查询错误

以下查询返回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)

有人可以解释一下为什么我一开始没有收到错误消息的逻辑吗?

sas proc-sql

3
推荐指数
1
解决办法
58
查看次数

标签 统计

proc-sql ×10

sas ×10

sql ×3

datastep ×1

date ×1

odbc ×1

oracle ×1

trim ×1

where-clause ×1