是否可以在months_between(data1,data2)函数中使用一整列数据?
例如,我可以创建一个包含一组员工姓名和年龄的视图,其中年龄是从他们的“出生”列计算的吗?
任何帮助将不胜感激!
答案 0 :(得分:2)
是的,通常你可以在任何功能中使用一个列,它是一个数据库!例如:
select a.*, months_between(sysdate, dob)
from users a
正如A.B.Cade在评论中建议使用virtual column。这具有将数据存储在表格中的好处,即,可以将其编入索引并且可以收集统计数据,同时给予"始终最新的"在视图中即时计算的东西的好处。不幸的是,年龄不是确定性的,它会根据当前的sysdate定期更改,因此虚拟列无法工作。
创建视图应该没问题:
create or replace view users_age as
select u.*, floor(months_between(sysdate, dob)/12) as age
from users u;