1

months_ between(data1, data2) 関数でデータでいっぱいの列を使用することは可能ですか?

たとえば、従業員の名前と年齢のセットを含むビューを作成できますか?ここで、年齢は「出生」列から計算されますか?

どんな助けでも大歓迎です!

4

1 に答える 1

2

はい、通常、どの関数でも列を使用できます。これはデータベースです! 例えば:

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;

SQL フィドル

于 2013-10-06T11:40:05.557 に答える