Sto leggendo lo oracle documentation sugli operatori ANY e ALL. Capisco abbastanza bene i loro usi tranne che per una cosa. Essa afferma:TUTTI gli operatori VS Qualsiasi su una query vuota
ALL:
Se una sottoquery non restituisce zero righe, la condizione restituisce TRUE.
QUALSIASI:
Se una sottoquery non restituisce zero righe, la condizione restituisce FALSE.
Non mi sembra molto logico. Perché TUTTI su una subquery vuota restituire VERO ma QUALUNQUE restituisce FALSO?
Sono relativamente nuovo a SQL, quindi presumo che avrebbe un caso d'uso per questo comportamento che è davvero contro-intuitivo per me.
ANY e ALL su un set vuoto devono restituire lo stesso valore no?
Vale la pena menzionare un esempio: se hai un assegno per fare come" empSalary> ALL (seleziona salario da someTable) 'se non ci sono righe su' seleziona lo stipendio da qualcheTabella' valuta su true perché il valore che stai controllando è più grande di tutti i valori (anche se non esistono) ':) –