为什么这个查询给我一个错误: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'但是当我单独运行它们时,它们给出了正确的输出。
发布于 2010-04-29 23:10:02
我怀疑+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' 发布于 2010-04-29 23:22:43
您希望在此表中有一组不同的月份,加上它们随后的所有月份,对吗?
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'
)
/或者,如果我们需要保留日期数据类型,我们也可以使用TRUNC(logical_date, 'MM')来检索每月的第一天。
https://stackoverflow.com/questions/2738440
复制相似问题