首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >sql查询问题

sql查询问题
EN

Stack Overflow用户
提问于 2010-04-29 23:08:37
回答 2查看 141关注 0票数 0

为什么这个查询给我一个错误:ORA-01790

代码语言:javascript
运行
复制
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'

但是当我单独运行它们时,它们给出了正确的输出。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-04-29 23:10:02

我怀疑+1导致了数据类型转换。尝试:

代码语言:javascript
运行
复制
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' 
票数 4
EN

Stack Overflow用户

发布于 2010-04-29 23:22:43

您希望在此表中有一组不同的月份,加上它们随后的所有月份,对吗?

代码语言:javascript
运行
复制
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')来检索每月的第一天。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2738440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档