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
此指令不會讀取作用中資料集。 它會以下一個讀取資料集的指令來儲存,擱置執行。 如需相關資訊,請參閱主題 指令順序 。
下列關係運算子可以在邏輯表示式中使用:
| 符號 | 定義 |
|---|---|
| EQ 或 = | 等於 |
| NE or ~= or ¬ = or <> | 不等於 |
| LT or < | 少於 |
| LE or <= | 小於或等於 |
| GT 或> | 大於 |
| GE 或> = | 大於或等於 |
在邏輯表示式中可以使用下列邏輯運算子:
| 符號 | 定義 |
|---|---|
| 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.