在SQL中使用Include-Exclude Logic

时间:2017-10-10 16:52:53

标签: sql db2 cobol

我有以下员工数据表。 我试图根据以下逻辑创建一个选择查询: 如果状态=' X',则仅显示状态=' X' 否则如果(状态不=' X'和状态=空格),则显示所有记录

我已经尝试了所有可能的组合来获得结果但失败了。任何人都可以建议我如何执行此操作?

EmpNo  | Name  |Status   | Age 
================================
11     | Aron  | A       | 25
22     | Barry | X       | 26
33     | Carol | A       | 27
44     | Danny | I       | 28
55     | Emmy  | X       | 29
66     | Fanny | I       | 30
77     | Garry | A       | 25
88     | Harry | X       | 26

1 个答案:

答案 0 :(得分:0)

在单个查询中无法实现您想要做的事情。您需要根据Where条件编写多个选择查询。

在Cobol中,将您的输入移动到工作存储主机变量WS-AGE和WS-STATUS。然后将您的查询写为:

If Age > Zeroes and Status > Spaces
    Select EmpNo, Name, Age, Status
        into :host-variable1, :hv2, :hv3, :hv4
        from Table
        Where Age=:WS-AGE
          and Status=:WS-STATUS
Else
    If Age > Zeroes
       Select EmpNo, Name, Age, Status
        into :host-variable1, :hv2, :hv3, :hv4
        from Table
        Where Age=:WS-AGE
    Else
       Select EmpNo, Name, Age, Status
        into :host-variable1, :hv2, :hv3, :hv4
        from Table
    End-if
End-if