Rechercher Articles Oracle SQL sur ce Site.
Loading
Comment comparer une valeur avec les valeurs d'une sous-requetes multiligne dans la clause de condition WHERE ?.
La sous-interrogation doit être placée entre parenthèses, son résultat sera utilisé par la requête de niveau supérieur pour la comparaison.
Les opérateurs =, >, <, >=, <= ramènent une ligne.
Les opérateurs IN, ANY et ALL ramènent plusieurs lignes.
|
OPERATEURS DE COMPARAISONS |
RESULTATS |
| WHERE salaire IN(1200,1600,2000,2900) | SALAIRE doit être égale à une des valeurs dans IN() |
| WHERE salaire NOT IN(1200,1600,2000,2900) | SALAIRE ne doit pas être égale à une des valeurs dans IN() |
| WHERE salaire > ANY(1200,1600,2000,2900) |
SALAIRE doit être supérieur à au moins une des valeurs. Donc plus que le minimum (+ de 1200). |
| WHERE salaire < ANY(1200,1600,2000,2900) |
SALAIRE doit être inférieur à au moins une des valeurs. Donc moins que le maximum (- de 2900). |
| WHERE salaire > ALL(1200,1600,2000,2900) |
SALAIRE doit être supérieur au maximum de toutes les valeurs. Donc plus que le maximum (+ de 2900). |
| WHERE salaire < ALL(1200,1600,2000,2900) |
SALAIRE doit être inférieur au minimum de toutes les valeurs. Donc moins que le minimum (- de 1200). |
SQL> SELECT ename, job, sal FROM EMP 2 WHERE sal IN(1300,1500,2450); ENAME JOB SAL ---------- --------- ---------- CLARK MANAGER 2450 TURNER SALESMAN 1500 MILLER CLERK 1300 SQL> SELECT ename, job, sal FROM EMP 2 WHERE sal NOT IN(1300,1500,2450); ENAME JOB SAL ---------- --------- ---------- SMITH CLERK 800 ALLEN SALESMAN 1600 WARD SALESMAN 1250 JONES MANAGER 2975 MARTIN SALESMAN 1250 BLAKE MANAGER 2850 SCOTT ANALYST 3000 KING PRESIDENT 5000 ADAMS CLERK 1100 JAMES CLERK 950 FORD ANALYST 3000 11 rows selected. SQL> |
SQL> SELECT ename, job, sal FROM EMP 2 WHERE sal > ANY(1300,1500,2450); ENAME JOB SAL ---------- --------- ---------- ALLEN SALESMAN 1600 JONES MANAGER 2975 BLAKE MANAGER 2850 CLARK MANAGER 2450 SCOTT ANALYST 3000 KING PRESIDENT 5000 TURNER SALESMAN 1500 FORD ANALYST 3000 8 rows selected. SQL> SELECT ename, job, sal FROM EMP 2 WHERE sal < ANY(1300,1500,2450); ENAME JOB SAL ---------- --------- ---------- SMITH CLERK 800 ALLEN SALESMAN 1600 WARD SALESMAN 1250 MARTIN SALESMAN 1250 TURNER SALESMAN 1500 ADAMS CLERK 1100 JAMES CLERK 950 MILLER CLERK 1300 8 rows selected. SQL> |
SQL> SELECT ename, job, sal FROM EMP 2 WHERE sal < ALL(1300,1500,2450); ENAME JOB SAL ---------- --------- ---------- SMITH CLERK 800 WARD SALESMAN 1250 MARTIN SALESMAN 1250 ADAMS CLERK 1100 JAMES CLERK 950 SQL> SELECT ename, job, sal FROM EMP 2 WHERE sal > ALL(1300,1500,2450); ENAME JOB SAL ---------- --------- ---------- JONES MANAGER 2975 BLAKE MANAGER 2850 SCOTT ANALYST 3000 KING PRESIDENT 5000 FORD ANALYST 3000 SQL> |
| Liens en rapport avec l'article et qui sont susceptibles de vous intéresser |
|
• Update conditionnées de Tables avec MERGE INTO • Oracle SQL GROUP BY ROLLUP • Oracle SQL GROUP BY CUBE • Instruction SQL SELECT FROM WHERE |