在SQL中使用包含 - 排除逻辑

问题描述:

我有以下员工数据表。 我试图创建一个基于以下逻辑的选择查询: 如果status ='X',只显示状态为'X'的记录其他if(状态不='X'和状态=空格),显示全部记录在SQL中使用包含 - 排除逻辑

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

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

我不知道这与COBOL有什么关系。 – SaggingRufus

+0

欢迎来到*.com。请花一些时间阅读[帮助页面](https://*.com/help),尤其是名为[“我可以询问什么主题?”](https://*.com/help/讨论话题)和[“我应该避免问什么类型的问题?”](https://*.com/help/dont-ask)。请参阅[tour](https://*.com/tour)并阅读[如何提出良好问题](https://*.com/help/how-to-ask)。最后,请学习如何创建[最小,完整和可验证示例](https://*.com/help/mcve)。 – cschneid

+0

@saggingrufus ...我将在COBOL-DB2处理程序/模块中使用此查询。 There4提到了标签:) –

你想做的事情不能在单个查询中实现。您需要根据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