概觀 (STAR JOIN 指令)
STAR JOIN 會執行等同的 SQL 左外部結合。 FROM 次指令指定觀察值資料檔 (事實表格)。 JOIN 次指令指定表格查閱檔案 (維度表格)。
- 合併檔案中包含觀察值資料檔中的所有觀察值 (記錄)。
- 僅當表格查閱檔案中的觀察值具有與觀察值資料檔中的索引鍵值相符的索引鍵值時,才會包含這些觀察值。
- 合併檔案包含在
SELECT次指令上指定的所有欄位,以及在JOIN次指令上指定為索引鍵的所有欄位。
這與具有一個以上 TABLE 查閱次指令的 MATCH FILES 類似,但 STAR JOIN 提供數個在 MATCH FILES中無法使用的特性:
- 檔案不需要依索引鍵值的順序進行預先排序。
- 每一個表格查閱檔案可以指定不同的索引鍵。
- 在觀察值資料檔案和表格查閱檔案中,定義的字串索引鍵寬度不必相同。
附註: 與 MATCH FILES不同, STAR JOIN 會讀取作用中資料集並導致執行任何擱置轉換。
語法
- 需要
PASSPROTECT以外的所有次指令。 - 所有次指令必須依照語法圖中指出的順序:
SELECT、FROM、JOIN、OUTFILE、PASSPROTECT。 - 在
JOIN次指令上指定的檔案中,索引鍵值必須是唯一的。 相同檔案內的重複索引鍵值會導致錯誤。 如果有多個索引鍵,則每一個索引鍵組合都必須是唯一的。
作業
合併的資料集包含來自輸入檔的完整字典資訊,包括變數名稱、標籤、列印及寫入格式,以及遺漏值指示器。
- 對於在多個檔案中具有相同名稱的主要變數或其他變數,變數字典資訊會從包含值標籤、遺漏值或一般變數的變數標籤的第一個檔案中取得。 如果觀察值資料檔沒有此類資訊,則會檢查指定的第一個參考表,依此類推。 這包括自訂變數屬性。
- 自訂檔案屬性 (
DATAFILE ATTRIBUTES指令) 取自包含自訂檔案屬性的第一個檔案。 如果觀察值資料檔沒有任何觀察值,則會檢查第一個表格查閱檔案,依此類推。 - 合併檔案包括所有檔案中的所有文件 (使用
DOCUMENT及ADD DOCUMENTS指令建立文件)。 - 不會保留任何檔案中的任何檔案標籤 (
FILE LABEL指令)。