【发布时间】:2023-04-11 01:13:01
【问题描述】:
我们在 SQL 查询中传递了一些参数。 如果这些参数中的任何一个不为空,那么我们正在设置一个值。 基于该值,我必须使用不同的连接来连接两个表。 请在下面找到代码:
WITH check_fliter
AS (SELECT CASE
WHEN &protocol_Id IS NOT NULL
OR &order_status IS NOT NULL
OR &order_Id IS NOT NULL
OR &start_date IS NOT NULL
OR &end_date IS NOT NULL
OR &source_system IS NOT NULL
THEN
'Y'
ELSE
'N'
END
CSDS_ONLY
FROM DUAL)
SELECT co.order_id,
im.object_key_n,
last_date_modified,
source_org_system_id
FROM csds_prod_owner.inbound_message im
(CASE WHEN CSDS_ONLY = 'Y'
THEN
JOIN ctds_order co
ON im.object_key_n = co.order_id
ELSE
LEFT OUTER JOIN ctds_order co
ON (im.object_key_n = decode(co.non_csds_order,'Y',DECODE( TRANSLATE(co.source_order_id,'0123456789',' '), NULL, co.source_order_id,-1),co.order_id))
END)
当我尝试执行此查询时,我收到以下错误消息。 ORA-00933: SQL 命令未正确结束
谁能帮帮我?
【问题讨论】: