0

我目前正在从同一架构中的 2 个 oracle 表中选择数据。这里的问题与类型有关。我的查询如下:

问题是甲骨文告诉我“ORA-01790:表达式必须具有与相应表达式相同的数据类型”并指向字段 EFF 年份。

eff_year 字段是数据库中的 number(4) 类型

report_date 字段是数据库中的日期类型

如何将 report_date 转换为数字?

我试过 TO_NUMBER(report_date) 但这给了我一个错误 ORA-01722: invalid number

SELECT 'Texture' MEASURE,
eff_year
FROM condition 
WHERE linear_id='004'
GROUP BY eff_year
UNION
SELECT 'Cracking' MEASURE,
TO_CHAR(report_date, 'YYYY') eff_year
FROM visual 
WHERE linear_id='004'
GROUP BY report_date
4

2 回答 2

2
to_number(TO_CHAR(report_date, 'YYYY')) eff_year
于 2013-04-10T12:42:12.087 回答
0

我会将它们转换为日期(to_date(eff_year,'YYYY')并使用普通的 report_date),但使用您的想法:

SELECT 'Texture' MEASURE,
eff_year
FROM condition 
WHERE linear_id='004'
GROUP BY eff_year

UNION ALL

SELECT 'Cracking' MEASURE,
to_number(TO_CHAR(report_date, 'YYYY')) eff_year
FROM visual 
WHERE linear_id='004'
GROUP BY TO_CHAR(report_date, 'YYYY')
于 2013-04-10T12:43:17.687 回答