Sql 其中,除非column.b=值,否则column.a不为null
我有一个查询正在提取一些数据。这是我的Sql 其中,除非column.b=值,否则column.a不为null,sql,teradata,Sql,Teradata,我有一个查询正在提取一些数据。这是我的WHERE子句 where p.invc_dt BETWEEN 1150101 AND 1160131 and o.Tracking_num is not null 此表包含订单数据和一个order\u CD列,用于确定销售类型或是否退款。退款没有关联的跟踪编号。我如何调整我的where语句来表示 and o.Tracking_num is not null **unless** `ORDER_CD` is REFUND 您可以使用布尔逻辑实
WHERE
子句
where p.invc_dt BETWEEN 1150101 AND 1160131
and o.Tracking_num is not null
此表包含订单数据和一个order\u CD
列,用于确定销售类型或是否退款。退款没有关联的跟踪编号。我如何调整我的where语句来表示
and o.Tracking_num is not null **unless** `ORDER_CD` is REFUND
您可以使用布尔逻辑实现该逻辑:
where p.invc_dt BETWEEN 1150101 AND 1160131 and
(o.Tracking_num is not null or order_cde = 'REFUND')
我不确定“除非”是否是排他性的,所以您可能是指:
where p.invc_dt BETWEEN 1150101 AND 1160131 and
((o.Tracking_num is not null and order_cde <> 'REFUND')
(o.Tracking_num is null and order_cde = 'REFUND')
)
其中p.invc_dt介于1150101和1160131之间,且
((o.Tracking_num不为空,订单_cde‘退款’)
(o.Tracking_num为空,订单_cde='退款')
)
您可以使用布尔逻辑实现逻辑:
where p.invc_dt BETWEEN 1150101 AND 1160131 and
(o.Tracking_num is not null or order_cde = 'REFUND')
我不确定“除非”是否是排他性的,所以您可能是指:
where p.invc_dt BETWEEN 1150101 AND 1160131 and
((o.Tracking_num is not null and order_cde <> 'REFUND')
(o.Tracking_num is null and order_cde = 'REFUND')
)
其中p.invc_dt介于1150101和1160131之间,且
((o.Tracking_num不为空,订单_cde‘退款’)
(o.Tracking_num为空,订单_cde='退款')
)
是否退款
?祝你好运,是退款吗?祝你好运