sql >> Database teknologi >  >> RDS >> Oracle

Forespørgsel, der returnerer:ORA-01427 Enkeltrækkende underforespørgsel, der returnerer mere end én række

Kan du prøve med nedenfor,

Jeg har brugt coalesce i tilfælde af at der ikke er nogen match for kolonne queue det vil betragte det som null og værdien 2 tages i stedet.

update product pd
set    pd.age = case
                   when pd.exittime != null then
                    (sysdate - pd.exittime)
                   else
                    coalesce((select (sysdate - pd.entrytime)
                                from department dp
                                where pd.queue = dp.queue
                                  and pd.id = dp.id)
                            ,2)
                end
where  pd.id > 1
and    pd.status in ('1','7','2','5')
and    exists (select 1
                 from department dp
                where pd.id = dp.id
                  and pd.currentstatus = dp.currentstatus
                  and pd.activity = dp.activity);


  1. PostgreSQL-funktioner returnerer void

  2. Variabel 'sql_mode' kan ikke indstilles til værdien 'REPLACE

  3. Postgresql - udvælgelse af observationer og indsættelse af ny tabel

  4. PHP MYSQL SET giver fejl i while loop