首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要删除包含值“APPOINTMENT_NEEDED”的行

需要删除包含值“APPOINTMENT_NEEDED”的行
EN

Stack Overflow用户
提问于 2022-08-12 17:37:32
回答 2查看 112关注 0票数 0

我编写了一个查询来查找某些发货人中的所有工作项,但我只需要在wt.name列中不包含值'ShipmentStop‘的工作项,或者不包含wi.entity_type列中的’ShipmentStop‘值的工作项。

我试过了,而不是IN,你可以从评论中看到,但它根本不起作用。由于某种原因,我实际上不能在任何条件语句中使用这些列。

代码语言:javascript
复制
'''select wi.entity_type, IFF (wi.entity_type = 'EmailThread', concat ('https://ops.convoy.com/email-threads/', wi.entity_id), ' ') as "Email Link", wi.created_at, wi.updated_at, wt.name, j.short_id, s.friendly_prefix, ('https://ops.convoy.com/shipments/') || j.short_id as "Shipment Link"
from core.work_items WI
    left join src.work_types WT on WI.type_ID = WT.id
    left join core.jobs j on WI.job_id = j.id
    left join bi.shippers s on j.shipper_id = s.id
where 1=1
    and wi.completed_at is null
    --and wi.entity_type != 'ShipmentStop'
    --and 'APPOINTMENT_NEEDED' not in (wt.name)
    and contains (WI.evaluation_data, 'ADE')
    or contains (WI.evaluation_data, 'KLG')
    or contains (WI.evaluation_data, 'SBX')
    or contains (WI.evaluation_data, 'NES')
    or contains (WI.evaluation_data, 'KFT')
    or contains (WI.evaluation_data, 'MDZ')
    and date_trunc({{lookback}},CONVERT_TIMEZONE('America/Los_Angeles', wi.created_at)::timestamp)::date = date_trunc({{lookback}},[[ {{date}}) --]] dateadd({{lookback}},-1,CONVERT_TIMEZONE('America/Los_Angeles',current_timestamp())))::date
    order by wi.created_at desc
limit 10
-- lookback:
    -- qtr = quarter
    -- week = week
    -- day = day
    -- month = month
    -- year = year'''
EN

回答 2

Stack Overflow用户

发布于 2022-08-12 19:10:01

这一节可以重写:

代码语言:javascript
复制
(    contains (WI.evaluation_data, 'ADE')
or contains (WI.evaluation_data, 'KLG')
or contains (WI.evaluation_data, 'SBX')
or contains (WI.evaluation_data, 'NES')
or contains (WI.evaluation_data, 'KFT')
or contains (WI.evaluation_data, 'MDZ')
)

偏执增加以强制执行条件as,并优先于OR。

上述部分只是:

代码语言:javascript
复制
WI.evaluation_data ILIKE ANY ('%ADE%','%KLG%', '%SBX%', '%NES%', '%KFT%', '%MDZ%')

第二,FROM部分使用左联接到wt

代码语言:javascript
复制
from core.work_items WI
left join src.work_types WT on WI.type_ID = WT.id
left join core.jobs j on WI.job_id = j.id
left join bi.shippers s on j.shipper_id = s.id

因此,以下用途:

代码语言:javascript
复制
where ...
'APPOINTMENT_NEEDED' not in (wt.name)

将有效地将查询作为内部连接。

代码语言:javascript
复制
 from core.work_items WI
 INNER join src.work_types WT on WI.type_ID = WT.id

应该将此条件移动到ON

代码语言:javascript
复制
 FROM core.work_items WI
 LEFT join src.work_types WT 
   ON WI.type_ID = WT.id
  AND wt.name  <> 'APPOINTMENT_NEEDED'

或者使用空安全操作符:IS DISTINCT FROM

代码语言:javascript
复制
where 1=1
and wi.completed_at is null
and wi.evaluation_data ILIKE ANY ('%ADE%','%KLG%', '%SBX%', '%NES%', '%KFT%', '%MDZ%')
and wt.name IS DISTINCT FROM 'APPOINTMENT_NEDDED'
票数 1
EN

Stack Overflow用户

发布于 2022-08-12 17:48:14

NOT CONTAINS (wt.name, 'APPOINTMENT_NEEDED')

wt.name NOT LIKE '%APPOINTMENT_NEEDED%'

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73337912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档