为什么此查询会给我一个错误:ORA-01790
SELECT TO_CHAR(logical_date,'MM') MONTH
FROM logical_date WHERE logical_date_type='B'
UNION
SELECT
TO_CHAR(logical_date,'MM')+1 MONTH
FROM logical_date WHERE logical_date_type='B'
但是当我单独运行它们时,它们会给出正确的输出。
答案 0 :(得分:4)
我怀疑+1
导致数据类型转换。尝试:
SELECT TO_CHAR(logical_date,'MM')+0 MONTH
FROM logical_date WHERE logical_date_type='B'
UNION
SELECT
TO_CHAR(logical_date,'MM')+1 MONTH
FROM logical_date WHERE logical_date_type='B'
答案 1 :(得分:3)
您希望此表中有一组不同的月份,加上以后的所有月份,对吗?
select to_char(logical_date, 'MM') MONTH
from (
SELECT logical_date
FROM logical_date WHERE logical_date_type='B'
UNION
SELECT ADD_MONTHS(logical_date,1)
FROM logical_date WHERE logical_date_type='B'
)
/
或者,如果我们需要保留DATE数据类型,我们可以使用TRUNC(logical_date, 'MM')
来检索该月的第一天。