months_ between(data1, data2) 関数でデータでいっぱいの列を使用することは可能ですか?
たとえば、従業員の名前と年齢のセットを含むビューを作成できますか?ここで、年齢は「出生」列から計算されますか?
どんな助けでも大歓迎です!
はい、通常、どの関数でも列を使用できます。これはデータベースです! 例えば:
select a.*, months_between(sysdate, dob)
from users a
仮想列を使用したコメントで ABCAD が示唆しているように。これには、データをテーブルに保存するという利点があります。つまり、インデックスを作成して統計を収集できると同時に、ビューでその場で計算される「常に最新」の利点が得られます。残念ながら、年齢は決定論的ではありません。現在のシステム日付に応じて定期的に変化するため、仮想列は機能しません。
ビューの作成は問題ないはずです。
create or replace view users_age as
select u.*, floor(months_between(sysdate, dob)/12) as age
from users u;