当 Snowflake SQL 中的两个条件都满足时,从 Select 中删除记录
Remove records from Select when both conditions are met in Snowflake SQL
我正在尝试在满足此条件时从 CTE 中删除记录 -
删除职位 ID 0000087544 和支付代码为 SUPA 的时间表
select * from timesheets where ( (external_payroll_code not in ('SUPA')) and (position_id not in ('0000087544')) )
正在删除所有记录 position_id = '0000087544',而我只想删除 external_payroll_code = 'SUPA' 的位置 ID。
有没有一种方法可以在 SELECT 中将条件排除指定为 Snowflake SQL 中的子查询,或者编写 JOIN 子句是唯一的出路。
如有任何提示,我们将不胜感激。谢谢!
输入
员工编号
职位编号
外部支付码
1A
0000087544
SUPA
1B
00000888888
SUPA
输出
员工编号
职位编号
外部支付码
1B
00000888888
SUPA
您只需稍微更改一下 AND/OR 逻辑即可。
with timesheets as (select employee_id, position_id, external_payroll_code from values ('1A', '0000087544', 'SUPA'), ('1B', '00000888888', 'SUPA'))
select * from timesheets where not (external_payroll_code in ('SUPA') and position_id in ('0000087544'))
EMPLOYEE_ID POSITION_ID EXTERNAL_PAYROLL_CODE
1B 00000888888 SUPA
我正在尝试在满足此条件时从 CTE 中删除记录 -
删除职位 ID 0000087544 和支付代码为 SUPA 的时间表
select * from timesheets where ( (external_payroll_code not in ('SUPA')) and (position_id not in ('0000087544')) )
正在删除所有记录 position_id = '0000087544',而我只想删除 external_payroll_code = 'SUPA' 的位置 ID。
有没有一种方法可以在 SELECT 中将条件排除指定为 Snowflake SQL 中的子查询,或者编写 JOIN 子句是唯一的出路。
如有任何提示,我们将不胜感激。谢谢!
输入
员工编号 | 职位编号 | 外部支付码 |
---|---|---|
1A | 0000087544 | SUPA |
1B | 00000888888 | SUPA |
输出
员工编号 | 职位编号 | 外部支付码 |
---|---|---|
1B | 00000888888 | SUPA |
您只需稍微更改一下 AND/OR 逻辑即可。
with timesheets as (select employee_id, position_id, external_payroll_code from values ('1A', '0000087544', 'SUPA'), ('1B', '00000888888', 'SUPA'))
select * from timesheets where not (external_payroll_code in ('SUPA') and position_id in ('0000087544'))
EMPLOYEE_ID POSITION_ID EXTERNAL_PAYROLL_CODE
1B 00000888888 SUPA