STAR JOIN
STAR JOIN 执行相当于 SQL 左外连接的操作。 FROM 子命令指定案例数据文件 (事实表)。 JOIN 子命令指定表查找文件 (维表)。
STAR JOIN
/SELECT {* | alias0.field [AS newname], alias1.field [AS newname],...}
/FROM {'data file' [PASSWORD='password'] | dataset | *} AS alias0
/JOIN {'data file' [PASSWORD='password'] | dataset | *} AS alias1
ON alias0.key1=alias1.key1
[AND alias0.key2=alias1.key2] [AND...]
[IN=field]
[/JOIN...] [/JOIN...]
/OUTFILE FILE={'data file' | dataset | *}
[/PASSPROTECT]
PASSWORD={'password'|NONE**}
[ENCRYPTEDPW={NO**|YES}]
**Default if subcommand or keyword omitted
- 除
PASSPROTECT以外的所有子命令都是必需的。 - 所有子命令必须按语法图表中指示的顺序。
- 允许使用多个
JOIN子命令,最多为文件句柄的操作系统限制,或者直到耗尽内存为止。 - 所有命令规范都必须完整拼写; 不允许使用三个字母缩写。
SELECT,FROM和JOIN的语法基于标准 SQL 语法,但这不是 SQL。 不能包含语法图表中未显式指定的任何 SQL。
此命令读取活动数据集并导致执行任何暂挂命令。 请参阅主题 命令顺序 以获取更多信息。
发布历史
发行版 21.0
- 已引入命令。
发行版 22.0
- 在
FROM和JOIN子命令上引入了PASSWORD关键字。
示例
STAR JOIN
/SELECT t1.Name1, t1.Name2, t1.Field1, t1.Field2, t1.Field3,
t2.Value1, t3.Value2
/FROM '/myfiles/fact.sav' AS t1
/JOIN '/myfiles/field1_values.sav' AS t2
ON t1.Field1 = t2.Field1
/JOIN 'myfiles/field2_values .sav' AS t3
ON t1.Field2 = t3.Field2
/OUTFILE FILE='/myfiles/merged.sav'.