Jestem nowy w Oracle SQL, a każda pomoc zostanie doceniona! Próbuję uruchomić to zapytanie:

select ID, birthyear,
substr('&Enter_Date',7,4) Year,
Case When birthday is not null
 Then (Year-birthyear) End age
From client

Dostałem komunikat o błędzie, że rok jest nieprawidłowym identyfikatorem. Zastanawiam się, jak korzystać z tej nowo utworzonej kolumny (rok), aby obliczyć wiek.

0
greg 21 październik 2020, 05:20

1 odpowiedź

Najlepsza odpowiedź

Nie możesz ona odwołać się do nim natychmiast ; Użyj tego samego SUBSTR, ponownie:

select ID, 
       birthyear, 
       substr('&Enter_Date',7,4) Year, 
       --
       Case When birthday is not null Then (substr('&Enter_Date',7,4) - birthyear) 
       End age                              ^^^^^^^^^^^^^^^^^^^^^^^^^^
From client                                 here!

Lub, oblicz rok w podzapytaniu, a następnie użyj go w głównym zapytaniu, np.

select c.ID,
       c.birthyear,
       x.year,
       --
       case when c.birthday is not null then x.year - c.birthyear
       end age
from client c cross join (select substr('&Enter_Date',7,4) year
                          from dual
                         ) x
1
Littlefoot 21 październik 2020, 05:10