Sql 您可以使用列作为函数中的数据之一吗?

Sql 您可以使用列作为函数中的数据之一吗?,sql,oracle,Sql,Oracle,是否可以在月间隔(data1、data2)函数中使用一列完整的数据 例如,我可以创建一个包含一组员工姓名和年龄的视图,其中年龄是从员工的“出生”列计算出来的吗 任何帮助都将不胜感激 是的,通常您可以在任何函数中使用列,它是数据库!例如: select a.*, months_between(sysdate, dob) from users a 正如A.B.Cade在评论中使用A。这样做的好处是将数据存储在一个表中,即可以对数据进行索引并收集统计数据,同时提供在视图中动态计算的“始终最新”的

是否可以在月间隔(data1、data2)函数中使用一列完整的数据

例如,我可以创建一个包含一组员工姓名和年龄的视图,其中年龄是从员工的“出生”列计算出来的吗


任何帮助都将不胜感激

是的,通常您可以在任何函数中使用列,它是数据库!例如:

select a.*, months_between(sysdate, dob)
  from users a
正如A.B.Cade在评论中使用A。这样做的好处是将数据存储在一个表中,即可以对数据进行索引并收集统计数据,同时提供在视图中动态计算的“始终最新”的好处。不幸的是,年龄是不确定的,它根据当前的系统日期定期变化,因此虚拟列无法工作

创建视图应该很好:

create or replace view users_age as
 select u.*, floor(months_between(sysdate, dob)/12) as age
  from users u;

你的意思是这样的吗?顺便说一句,由于11g有虚拟列的概念,可能会满足您的要求,非常感谢!现在,我在SQL中使用函数等更加自如;逐渐习惯:)