在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
答
你想做的事情不能在单个查询中实现。您需要根据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
我不知道这与COBOL有什么关系。 – SaggingRufus
欢迎来到stackoverflow.com。请花一些时间阅读[帮助页面](https://stackoverflow.com/help),尤其是名为[“我可以询问什么主题?”](https://stackoverflow.com/help/讨论话题)和[“我应该避免问什么类型的问题?”](https://stackoverflow.com/help/dont-ask)。请参阅[tour](https://stackoverflow.com/tour)并阅读[如何提出良好问题](https://stackoverflow.com/help/how-to-ask)。最后,请学习如何创建[最小,完整和可验证示例](https://stackoverflow.com/help/mcve)。 – cschneid
@saggingrufus ...我将在COBOL-DB2处理程序/模块中使用此查询。 There4提到了标签:) –