Oracle Database Certified Associate (OCA) less than 1 minute read

Multi row sub-query adalah sub-query yang menghasilkan lebih dari satu row pada inner query. contohnya seperti berikut:

SQL> select *
from EMPLOYEES
where DEPARTMENT_ID = (
    select dep.DEPARTMENT_ID
    from DEPARTMENTS dep
);  


select dep.DEPARTMENT_ID
    *
ERROR at line 4:
ORA-01427: single-row subquery returns more than one row

SQL>

Nah jadi untuk menghandle inner query yang menghasilkan banyak baris, berikut adalah predicates yang kita bisa gunakan:

Operation Keterangan
IN Nilai pembanding sama dengan = tetapi kita bisa memberikan banyak nilai sebagai pembanding
ANY Nilai pembanding dari sekumpulan data yang ada, Operator terdiri dari > ANY, < ANY dan = ANY
SOME sama seperti any
ALL Nilai pembanding dari sekumpulan data yang ada, Operator terdiri dari > ALL dan < ALL
EXIST Untuk melakukan check, data pada inner query ada kemudian dibandingkan dengan outer query