## SAS Certified Adv Programmer 130 Questions (37)

Given the following SAS data sets ONE and TWO:

ONE NUM CHAR1 1 A1 1 A2 2 B1 2 B2 5 V TWO NUM CHAR2 2 X1 2 X2 3 Y 4 D

The following SAS program is submitted creating the output table THREE:

proc sql; create table three as select one.num, char1, char2 from one, two where one.num = two.num; quit;

THREE NUM CHAR1 CHAR2 2 B1 X1 2 B1 X2 2 B2 X1 2 B2 X2

Which one of the following DATA step programs creates an equivalent SAS data set THREE?

A.

```
```data three;
merge one two;
by num;
run;

B.

```
```data three;
set one;
set two;
by num;
run;
merge one two;
by num;
run;

C.

```
```data three;
set one;
set two;
by num;
run;
by num;
run;

D.

```
```data three;
set one;
do i = 1 to numobs;
set two(rename = (num = num2)) point = i nobs = numobs;
if num2 = num then output;
end;
drop num2;
run;

D

shouldn’t “A” be the correct answer?

No, the answer provided by the admin is right. Merge handles missing and many-to-many matches differently.

D is the answer I checked it

answer A is

num char1 char2

1 a1

1 a2

2 b1 x1

2 b2 x2

3 y

4 d

5 v

correct answer is D

No way, ANS is D. Pls check the SAS code sensibly.