首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新年龄SQL Oracle

更新年龄SQL Oracle
EN

Stack Overflow用户
提问于 2016-04-05 14:07:09
回答 1查看 151关注 0票数 0

我有一个名为DOC_ADMISSAO2的表,其中有生日日期(数据类型是日期)和另一个日期(数据类型是日期),我想知道年龄。

我使用了以下查询:

代码语言:javascript
复制
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 -“单行子查询返回多行”*原因: *行动:

帮助?我在这方面有点新。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-05 14:11:17

您不需要嵌套查询来更新行:

代码语言:javascript
复制
update DOC_ADMISSAO2
set IDADE = EXTRACT(YEAR FROM DATACRIACAO) - EXTRACT(YEAR FROM DATAN)

当然,这只计算年份之间的差异,因此,如果您有,例如,DATACRIACAO = 01/01/2016DATAN= 31/12/2015,那么您的年龄为1岁。此外,正如评论中所说,把一个年龄存储在桌子上没有多大意义,因为它每天都会改变。

因此,这可以解决您的查询问题,但最好是考虑不同的表设计,并以不同的方式评估年龄。

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

https://stackoverflow.com/questions/36428732

复制
相关文章

相似问题

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