To handle the case where the query condition returns multiple rows, you can use the 'IN' operator instead of the '=' operator. Here's an updated version of your query:

UPDATE emr.patient_in_hospital
SET birthday = (
    SELECT ic.DATE_OF_BIRTH
    FROM emr.patient_in_hospital pi
    LEFT JOIN idr.inpatient_cert ic ON pi.inpat_num = ic.inpat_num
    WHERE pi.birthday IS NULL
)
WHERE inpat_num IN (
    SELECT ic.inpat_num
    FROM emr.patient_in_hospital pi
    LEFT JOIN idr.inpatient_cert ic ON pi.inpat_num = ic.inpat_num
    WHERE pi.birthday IS NULL
)

By using the 'IN' operator, the query will update all rows where the 'inpat_num' value is present in the subquery's result set.


原文地址: https://www.cveoy.top/t/topic/pmvP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录