从sql表中提取行数

从sql表中提取行数,sql,encapsulation,Sql,Encapsulation,假设我们有一个SQL请求,比如select*from employees。如果我只想知道行数,那么可以从employees中选择count* 问题是,这需要修改SQL请求,这可能需要一些解析。如果请求是一个字符串SQL_请求,我想编写一些通用的、简单的和健壮的代码,比如:select count*from SQL_请求,但是结果是select count*from select*from employees不是一个正确的请求 应该指出的是,在某些情况下,我们可以进行这样的建设。例如,如果希望请求

假设我们有一个SQL请求,比如select*from employees。如果我只想知道行数,那么可以从employees中选择count*

问题是,这需要修改SQL请求,这可能需要一些解析。如果请求是一个字符串SQL_请求,我想编写一些通用的、简单的和健壮的代码,比如:select count*from SQL_请求,但是结果是select count*from select*from employees不是一个正确的请求

应该指出的是,在某些情况下,我们可以进行这样的建设。例如,如果希望请求的前1000行,则可以执行SQL\U请求限制1000

有没有一种方法可以封装一个通用的SQL表请求,以便获得行数

…但结果为select count*from select*from EMPLOYEE的请求不正确

您正在将查询用作表表达式,但忘记为其指定别名。尝试:

select count(*) from (select * from employees)) x

请参见末尾的x?

它取决于数据库。有时,只要做到以下几点就足够了:

select count(*)
from (<request>) t;
我想到了以下问题:

如果请求以order by结束,某些数据库将不允许该请求。 如果请求有CTE,某些数据库将不允许它。 若请求分配变量值,某些数据库将不允许它。
我想到了这些。出于许多目的,您可以使用子查询或CTE进行封装。

您使用的是什么数据库?为什么要知道行数?在1上,如果子查询中有一个限制,大多数数据库都会接受ORDER BY。