Краткое сравнение Oracle SQL и ANSI SQL - Оператор SELECT
ОГЛАВЛЕНИЕ
Страница 6 из 8
Оператор SELECT
В операторе SELECT имеются следующие дополнительные возможности по сравнению с ANSI SQL:
- NULL в списке выборки
- Запрос из запроса (SELECT FROM (SELECT….))
- Левая часть оператора IN может быть списком выражений в отличии от одиночного выражения в ANSI SQL
- Не только столбец, а любое выражение может быть использовано с оператором LIKE
- Любое выражение, а не только отдельный столбец может быть использован в операторах сравнения IS NULL и IS NOT NULL
- В предложении ORDER BY может быть использовано любое выражение содержащее любые столбцы любых таблиц предложения FROM в отличии от только имен, алиасов, номеров позиций столбцов списка выборки
- В предложении GROUP BY может быть использовано любое выражение содержащее любые столбцы любых таблиц предложения FROM в отличии от только имен, алиасов столбцов списка выборки
- Вложенные агрегатные функции MIN(MAX(col1)) (уровень вложенности не более 2)
- Оператор внешнего соединения (+)
- Древовидные запросы
1 SELECT ename, job, sal, deptno, NULL
FROM
2 (SELECT * FROM emp WHERE deptno=30)
3 WHERE (ename,job) IN (SELECT ename,job FROM …. );
SELECT ename,ename2,sal,sal2
FROM emp
4 WHERE ename LIKE '%'||ename2||'%' AND
5 sal+sal2IS NOT NULL
6 ORDER BY sal+sal2
- в списке выборки присутствует NULL-значение
- в предложении FROM указан подзапрос
- слева от оператора IN указан список из двух столбцов, а справа - запрос, возвращающий два столбца
- с оператором LIKE использовано выражение '%'||ename2||'%', содержащее ссылку на столбец
- С оператором сравнения IS NOT NULL используется выражение sal+sal2
- Сортировка осуществляется по значению выражения sal+sal2