连接具有不同数据类型的两个数据库集

时间:2015-03-04 22:39:09

标签: join sas

尝试连接两个数据集,但连接基于两种不同的数据类型(数字和文本)

SELECT *
FROM D1.T1 c
INNER JOIN
D1.T2 d
on c.CNUMBER=INPUT(d.CNUMBER, 8.) ;

这不起作用。

我可以创建一个新数据集(复制现有数据集并添加数字列),如下所示:

CNUMBER1=CNUMBER*1;
run;

然后,当我加入使用此副本时,它可以工作......但我实际上想要尝试通过直接Oracle连接找出方法。 在Oracle中,我会这样做:

on to_char(c.CNUMBER)=to_char(c.CNUMBER)

1 个答案:

答案 0 :(得分:1)

大肆猜测你真正想要的东西:

PROC SQL;
  CONNECT TO ORACLE (...);
  CREATE TABLE oracle_results AS
  SELECT * FROM CONNECTION TO ORACLE (
  SELECT *
  FROM D1.T1 c
  INNER JOIN
  D1.T2 d
  on to_char(c.CNUMBER)=d.CNUMBER);
  DISCONNECT FROM ORACLE;
QUIT;

将SAS会话连接到Oracle,执行显式直通SQL查询并将结果传递回SAS表oracle_results。用Oracle连接凭证替换这些点。