我想问一下我们是否可以在 sql 函数中使用子查询(同时考虑组和单个函数)。我一直在尝试这个简单的查询 -
select count(select empno from emp where sal<3000) from emp;
它给出了错误“缺少表达”。这只是一个简单的例子。
我只想知道这个查询逻辑是错误的还是sql中不允许的,如果我们可以在sql函数中使用子查询,请注意举个例子。
谢谢。
我想问一下我们是否可以在 sql 函数中使用子查询(同时考虑组和单个函数)。我一直在尝试这个简单的查询 -
select count(select empno from emp where sal<3000) from emp;
它给出了错误“缺少表达”。这只是一个简单的例子。
我只想知道这个查询逻辑是错误的还是sql中不允许的,如果我们可以在sql函数中使用子查询,请注意举个例子。
谢谢。
您的查询根本没有意义。你为什么不这样做呢?
select count(empno) from emp where sal<3000;
我认为这是可能的。有关示例,请参见http://www.akadia.com/services/sqlsrv_subqueries.html (在页面上找到“DATEDIFF”以查看它)。但是,我不确定它是否适用于所有类型的 SQL。例如,我使用 SAS,它有自己相当简单的 SQL 实现,但它似乎不允许这样做。
即使您能够使用子查询,它本质上也必须返回一个表达式或列名,可以通过循环记录来评估和计数。因此,您应该尝试将子查询结果用作查询中的列或任何其他连接组合来完成您的工作。