我有一个名为DOC_ADMISSAO2的表,其中有生日日期(数据类型是日期)和另一个日期(数据类型是日期),我想知道年龄。
我使用了以下查询:
update DOC_ADMISSAO2
set IDADE = (SELECT EXTRACT(YEAR FROM DATACRIACAO) - EXTRACT(YEAR FROM DATAN)
from DOC_ADMISSAO2));但它向我展示了这个错误:
从行开始错误:2在命令中更新DOC_ADMISSAO2 set IDADE =(从DATACRIACAO选择提取(年份)-从DOC_ADMISSAO2提取(年份))错误报告- SQL错误: ORA- 01427 : subconsulta de linhaúnica devolve que uma linha 01427。00000 -“单行子查询返回多行”*原因: *行动:
帮助?我在这方面有点新。
发布于 2016-04-05 14:11:17
您不需要嵌套查询来更新行:
update DOC_ADMISSAO2
set IDADE = EXTRACT(YEAR FROM DATACRIACAO) - EXTRACT(YEAR FROM DATAN)当然,这只计算年份之间的差异,因此,如果您有,例如,DATACRIACAO = 01/01/2016和DATAN= 31/12/2015,那么您的年龄为1岁。此外,正如评论中所说,把一个年龄存储在桌子上没有多大意义,因为它每天都会改变。
因此,这可以解决您的查询问题,但最好是考虑不同的表设计,并以不同的方式评估年龄。
https://stackoverflow.com/questions/36428732
复制相似问题