我在SAS中使用完全外连接时遇到问题 我想加入两个数据库。 A是包含患者ID,SEX,RACE,blablabla的“妈妈”......但是没有状态变量。 B是仅包含ID和状态的B. 所以A实际上是一个比B更大的数据库,我要做的就是将B包括状态放入A.这是我的代码:
proc sql;
CREATE TABLE C AS
select *
from A full outer join B
on A.id=B.id ;
RUN;
我得到的结果实际上并没有合并两个数据库。相反,我得到了数据库C,其中A的所有数据都在顶部(状态变量为空),然后数据B跟随A(状态变量在那里,但所有其他变量显示为Null)。因此,我所做的只是添加行....
以下是我的代码的一些条件; 我使用大学版 2. ID的格式实际上是Char。由于B的ID(例如:BD123),我将数字变量ID从A转换为char变量。
任何人都可以帮我这个吗?非常感谢你:-D
答案 0 :(得分:0)
如果你有一个完整的连接(A中有100行,B中有15行,C中有115行),那么在转换时你可能没有正确匹配ID变量格式。您可能会遇到其他空格或类似问题(B.id
的长度可能与A.id
不匹配)。如果可能的话,我会将ID转换为数字,或者更仔细地转换为字符。
其次,如果您打算只获取A的行数(只是将B信息添加到A),那么您需要left join
而不是full outer join
。
答案 1 :(得分:0)
我认为你可能正在考虑左连接。
proc sql;
create table C as
select A.*, B.*
from A left join B
on A.ID=B.ID;
quit;