我在同一臺服務器(dbA和dbB)中有兩個數據庫。兩者都有一個名爲CUSTOMERS的表。我想計算我的客戶的年齡並根據dbA.CUSTOMERS表中的當前日期和DateOfBirth列,在dbB.CUSTOMERS上的列AGE上插入它。如何計算Oracle SQL中的年齡
要計算我試圖用
SELECT floor(months_between(SYSDATE, (SELECT BIRTH_DATE FROM dbA.CUSTOMERS)) /12) from dual;
歲但這返回ORA-01427:single-row subquery returns more than one row
我猜這是因爲子查詢返回birth_date列的每一行。有沒有辦法爲所有行執行此操作,然後將結果插入到我的dbB.CUSTOMERS表中?
我使用OracleSQL
爲什麼?年齡隨時間而變化。如果需要,你可以更好地構建和調用一個函數。如果它是確定性的,你可以使用基於函數的索引;但這不是確定性的,爲什麼呢?在我看來,功能在這裏會更好用。 – xQbert
@xQbert這是一個練習,所以隨着時間的推移年齡變化無關緊要。 – Akaitenshi
選擇很差的運動。無論教師試圖展示(或測試)什麼,他們都應該選擇更好的例子,類似於在現實世界中實際做的事情。這個任務在現實世界中是非常愚蠢的,並且很容易拿出一個有意義的任務來演示完全相同的特徵,技術等,而不會暗示或暗示將表存儲在表中的年齡有點意義。只是我的2美分... – mathguy