SELECT pmi.patient_id,
pmi.sex,
pmi.date_of_birth,
trunc(months_between(sysdate, pmi.date_of_birth) / 12) as age,
case
when floor(sysdate - pmi.date_of_birth) >= 365 then
concat(floor(months_between(sysdate, pmi.date_of_birth) / 12),
'岁')
when floor(sysdate - pmi.date_of_birth) < 365 and
floor(sysdate - pmi.date_of_birth) >= 30 then
concat(floor(months_between(sysdate, pmi.date_of_birth)), '月')
else
concat(floor(sysdate - pmi.date_of_birth), '天')
end as patient_age_desc
FROM pat_index pmi
order by pmi.create_date_time desc;