2013-02-24 8 views
1

Я хочу спросить, можем ли мы использовать подзапросы внутри функции sql (рассмотрим как групповые, так и одиночные функции). Я пробовал этот простой запрос -Использование подзапросов в sql-функциях

select count(select empno from emp where sal<3000) from emp; 

Это сообщение об ошибке «Отсутствие выражения». Это простой пример.

Я просто хочу знать, является ли эта логика запроса неправильной или если она не разрешена в sql, и если мы можем использовать подзапросы внутри функции sql, пожалуйста, обратите внимание на пример.

Спасибо.

ответ

1

Ваш запрос просто не имеет смысла. Почему бы вам просто не сделать это?

select count(empno) from emp where sal<3000; 
+0

Хотя вопрос глупый, я думаю, он пытается спросить, возможно ли понятие 'select count (subquery)'. – Joe

+0

@MattBall Я хотел бы дать это 10 upvotes – Jeremy

+0

Я знаю, что я могу использовать этот запрос, а не тот. Но я использовал этот пример, чтобы люди поняли, о чем мой вопрос. Вкратце, я хочу знать, можем ли мы использовать подзапросы внутри функций или нет. – Anu

0

Я думаю, что это возможно. См. Пример http://www.akadia.com/services/sqlsrv_subqueries.html (найдите «DATEDIFF» на странице, чтобы увидеть его). Однако я не уверен, что это возможно во всех вариантах SQL; например, я использую SAS, у которого есть своя собственная реализация SQL-версии, и она, похоже, не позволяет этого.

0

Даже если вы можете использовать подзапрос, он должен будет по существу вернуть выражение или имя столбца, которое может быть оценено и подсчитано путем прокрутки записей. Следовательно, вы должны попытаться использовать результат подзапроса в качестве столбца в вашем запросе или любую другую комбинацию соединений для выполнения своей работы.

+0

Это правильный ответ, но это смутно сказано. Подзапрос возвращает набор результатов - по существу другое отношение. В общем случае функции принимают значения или столбцы, а не отношения. Если вам нужно использовать подзапрос, используйте его как отношение и примените свою функцию к соответствующим частям этого отношения. –

+0

@evilotto Спасибо ... – Anu

Смежные вопросы