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 子命令,最多为文件句柄的操作系统限制,或者直到耗尽内存为止。
  • 所有命令规范都必须完整拼写; 不允许使用三个字母缩写。
  • SELECTFROMJOIN 的语法基于标准 SQL 语法,但这不是 SQL。 不能包含语法图表中未显式指定的任何 SQL。

此命令读取活动数据集并导致执行任何暂挂命令。 请参阅主题 命令顺序 以获取更多信息。

发布历史

发行版 21.0

  • 已引入命令。

发行版 22.0

  • FROMJOIN 子命令上引入了 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'.