我目前正在从同一架构中的2个oracle表中选择数据。 这里的问题与类型有关。我的查询如下:
问题是oracle告诉我“ORA-01790:表达式必须与对应的表达式具有相同的数据类型” 并指出EFF年份。
eff_year字段在数据库中的类型为number(4)
report_date字段在数据库中的日期类型为
如何将report_date转换为数字?
我尝试了TO_NUMBER(report_date),但这给了我一个错误ORA-01722:无效的数字
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
答案 0 :(得分:2)
to_number(TO_CHAR(report_date, 'YYYY')) eff_year
答案 1 :(得分:0)
我会将它们转换为日期(to_date(eff_year,'YYYY')
并使用普通的report_date),但使用你的ideea:
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')