结合2个sas数据集

时间:2015-10-20 09:21:30

标签: sql sas

我想结合两个数据集t1和t2:

数据集1(一个变量X)

 X
 1
 2
 3 
 4

数据集2(一个变量Y)

 Y
 A
 B
 C

到一个新的数据集中 dataset1 + 2 t3

 X  Y
 1  A
 1  B
 1  C
 2  A
 2  B
 2  C
 3  A
 3  B
 3  C
 4  A
 4  B
 4  C

正如你所看到的,我没有常见的变量,我尝试了不同风格的设置和合并组合

data t3 ; merge t1 t2 ; run ;
data t3 ; set t1 ; set t2 ; run ;
data t3 ; set t1 ; if _n_  then set t2 ; run ;
data t3 ; set t1 t2  ; run ;

非常感谢任何帮助(SAS或SQL)

此致

SW

4 个答案:

答案 0 :(得分:0)

使用CROSS JOIN

CREATE TABLE #tab1(X INT);

CREATE TABLE #tab2(Y NVARCHAR(12));

INSERT INTO #tab1
VALUES (1), (2), (3), (4);

INSERT INTO #tab2
VALUES ('A'), ('B'), ('C');

SELECT X, Y
FROM #tab1
CROSS JOIN #tab2
ORDER BY X, Y;

LiveDemo

答案 1 :(得分:0)

在数据库上不确定所以这应该适用于大多数

 select a.X,b.Y from 
 dataset1 a , dataset2 b
 where 1=1

答案 2 :(得分:0)

DECLARE @Table1 TABLE 
    (X int)
;

INSERT INTO @Table1
    (X)
VALUES
    (1),
    (2),
    (3),
    (4)
;

DECLARE @Table2 TABLE 
    (Y varchar(1))
;

INSERT INTO @Table2
    (Y)
VALUES
    ('A'),
    ('B'),
    ('C')
;
select * from @Table1 T cross apply (select * from @Table2)TT

ORDER BY t.X

答案 3 :(得分:0)

这将起作用并产生预期的结果,基本上你正在看SAS中的笛卡尔积,

proc sql;
  select t1.*,t2.*
  from t1 ,t2
  ;
quit;

Output of above Code