我们在SQL查询中传递了一些参数。 如果这些参数中的任何一个不为null,那么我们设置一个值。 基于该值,我必须使用不同的连接来连接两个表。 请在下面找到代码:
update test_table tt join
(select feature , min(sprint) as minsprint
from TEST_TABLE
group by feature
having count(distinct sprint) > 1
) ttt
on tt.feature = ttt.feature and
tt.sprint > ttt.minsprint
set tt.review = 'Feature File Modified';
当我尝试执行此查询时,我收到以下错误消息。 ORA-00933:SQL命令未正确结束
有人可以帮助我吗?
答案 0 :(得分:0)
如果我理解正确,您可以对{both}使用LEFT JOIN
,然后在INNER JOIN
子句中转换回WHERE
:
SELECT . . .
FROM csds_prod_owner.inbound_message im LEFT JOIN
ctds_order co
ON (CSDS_ONLY = 'Y' and im.object_key_n = co.order_id) or
(CSDS_ONLY <> 'Y' and (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))
WHERE CSDS_ONLY <> 'Y' OR co.order_id is not null
我应该补充说,当decode()
语句更容易理解时,我并不真正赞同case
。但是,我没有修改代码的这一方面。