sql - 如何从下面过滤特定记录?
问题描述
我有一个表(Mytable),其值如下;
CustNo Audit History Inputter Authoriser
1 CHANGE CURRENT XYZ XYZ
2 CHANGE BEFORE XYZ XYZ
2 CHANGE CURRENT TOM TOM
3 ADD NEW TOM TOM
如果 Inputter 和 Authoriser 的值为 'XYZ' 且 Audit = 'CHANGE' 和 History = 'CURRENT',我只需要过滤掉记录,但是对于 Inputter 和 Authoriser 来说,它可以分别具有 Audit 和 History 作为 CHANGE 和 BEFORE 的值' XYZ' 等记录
我的预期输出如下:
CustNo Audit History Inputter Authoriser
2 CHANGE BEFORE XYZ XYZ
2 CHANGE CURRENT TOM TOM
3 ADD NEW TOM TOM
我使用了以下内容,但没有得到我例外的内容;
select * from Mytable
where (Inputter != 'XYZ' and Authoriser != 'XYZ' and Audit != 'CHANGE' and History != 'CURRENT' )
有人可以纠正我,如何达到我的预期输出。提前致谢。
**请修改我的要求,以下是新的例外;**
现在在我现有的需求中需要添加另一个场景,下面是表格记录;
CustNo Audit History Inputter Authoriser
1 ADD NEW Sasha Sasha
1 CHANGE BEOFRE MAX MAX
1 CHANGE CURRENT XYZ XYZ
2 CHANGE BEFORE XYZ XYZ
2 CHANGE CURRENT TOM TOM
3 ADD NEW TOM TOM
3 CHANGE CURRENT MAX MAX
如果任何输入者和授权者具有审计和'XYZ'
历史记录,则应删除该记录(这是现有的工作)以及表中出现的任何相同记录。'CHANGE'
'CURRENT'
custNo
例如,这里custNo = 1
有'XYZ'
with 'CHANGE'
& 'CURRENT'
,所以这应该与;一起删除
custNo = 1
与'CHANGE'
&'BEOFRE'
为'MAX'
和
custNo = 1
与'ADD'
&'NEW'
为'Sasha'
换句话说 - 删除任何出现的相同 CustNo ('XYZ'
在 Inputter 和 Authoriser 字段中分别具有'CHANGE'
&'CURRENT'
在 Audit 和 History 字段中),而不管任何 Audit 和历史记录,即使该 cust'XYZ'
在 Inputter 和 Authoriser中没有场地。
新的预期输出:
CustNo Audit History Inputter Authoriser
2 CHANGE BEFORE XYZ XYZ
2 CHANGE CURRENT TOM TOM
3 ADD NEW TOM TOM
3 CHANGE CURRENT MAX MAX
解决方案
而不是在条件下AND
使用OR
select * from Mytable
where (Inputter != 'XYZ' or Authoriser != 'XYZ' or Audit != 'CHANGE' or History != 'CURRENT' )
输出:
Audit History Inputter Authoriser
Change before xyz xyz
Change CURRENT TOM TOM
ADD NEW TOM TOM
推荐阅读
- android - Android MediaRecorder - 循环录制
- c# - ASP.Net 中的外观不一致
- python-3.x - 由于第 6 行,代码无法运行,它运行但未按设计运行
- python - 将文本从第一人称转换为第二人称时出现忽略引号内文本的问题
- python - 如何在不使用全局变量的情况下重构我的工作?
- android - 重复通知 - react-native-push-notification
- swiftui - macOS 应用程序的 SwiftUI:关闭窗口并打开另一个窗口时的用户 @EnvironmentObject
- python - 使用python在熊猫中根据时间获取不同的值
- microsoft-graph-api - 图形资源管理器邀请意外的邀请RedeemUrl
- sql - 如何使用 substr/regex 函数验证过滤器并从 Oracle PLSQL 中的存储过程中获取结果?