DO IF

DO IF-END IF 结构根据一个或多个逻辑表达式有条件地对个案子集执行一个或多个变换。 当 DO IF 上的逻辑表达式不为真时,可以在结构中使用 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.