问题描述
使用双表中的select语句作为子查询执行以下查询时,出现以下错误消息:
错误:ORA-00923:在预期位置找不到FROM关键字
查询1:
select a.dt_1,a.dt_2,a.dt_1=a.dt_2 as "match_type" from
(select to_date(replace('2020-05-14 00:00:00',' 00:00:00',''),'yyyy/mm/dd') as "dt_1",to_date('14/05/2020','dd/mm/yyyy') as "dt_2" from dual) a
查询2:
select a.dt_1,a.dt_1=a.dt_2 as match_type from
(select to_date(replace('2020-05-14 00:00:00','yyyy/mm/dd') as dt_1,'dd/mm/yyyy') as dt_2 from dual) a
当我单独运行子查询时,它会按预期执行,但是当我运行整个语句时,它将生成错误。
感谢您的帮助。
解决方法
您的match_type列正在生成错误。 Oracle不支持关系运算符匹配。您可以在下面的查询中尝试-
SELECT a.dt_1,a.dt_2,CASE WHEN a.dt_1=a.dt_2 THEN 'TRUE' ELSE 'FLASE' END AS "match_type"
FROM (SELECT TO_DATE(REPLACE('2020-05-14 00:00:00',' 00:00:00',''),'yyyy/mm/dd') as "dt_1",TO_DATE('14/05/2020','dd/mm/yyyy') as "dt_2"
FROM DUAL) a;