DO IF

DO IF-END IF 結構會根據一或多個邏輯表示式,在觀察值子集上有條件地執行一或多個轉換。 當 DO IF 上的邏輯表示式不是 true 時,可以在結構內使用 ELSE 指令來執行一個以上轉換。 結構內的 ELSE IF 指令提供進一步控制。

DO IF [(]logical expression[)]

transformation commands

[ELSE IF [(]logical expression[)]]

transformation commands

[ELSE IF [(]logical expression[)]]
  .
  .
  .
[ELSE]

transformation commands

END IF

此指令不會讀取作用中資料集。 它會以下一個讀取資料集的指令來儲存,擱置執行。 如需相關資訊,請參閱主題 指令順序

下列關係運算子可以在邏輯表示式中使用:

表 1. 關係運算子
符號 定義
EQ 或 = 等於
NE or ~= or ¬ = or <> 不等於
LT or < 少於
LE or <= 小於或等於
GT 或> 大於
GE 或> = 大於或等於

在邏輯表示式中可以使用下列邏輯運算子:

表 2. 邏輯運算子
符號 定義
AND or & 兩個關係都必須為 true
OR 或 | 任一關係都可以是 true
不是 反轉表示式的結果

範例

DO IF (YearHired GT 87).
COMPUTE            Bonus = 0.
ELSE IF (Dept87 EQ 3).
COMPUTE            Bonus = .1*Salary87.
ELSE IF (Dept87 EQ 1).
COMPUTE            Bonus = .12*Salary87.
ELSE IF (Dept87 EQ 4).
COMPUTE            Bonus = .08*Salary87.
ELSE IF (Dept87 EQ 2).
COMPUTE            Bonus = .14*Salary87.
END IF.