我看到过很多这样的问题。
Select 1
From table
这个1是什么意思,它将如何执行,它将返回什么?
另外,在什么类型的场景中可以使用它?
我看到过很多这样的问题。
Select 1
From table
这个1是什么意思,它将如何执行,它将返回什么?
另外,在什么类型的场景中可以使用它?
当前回答
如果你不知道你的表中是否存在任何数据,你可以使用以下查询:
SELECT cons_value FROM table_name;
例如:
SELECT 1 FROM employee;
它将返回一个包含行总数的列,并且所有行都具有相同的常量值1(这次它为所有行返回1); 如果表中没有行,它将不返回任何内容。
因此,我们使用这个SQL查询来知道表中是否有任何数据&行数表示这个表中有多少行。
其他回答
它简单地表示您正在从表,,,,中检索数字第一列 select empl_num,Empl_no From Employees; 这里你使用select 1 from Employees; 这意味着您正在检索Emply_num列。 谢谢
一个查询可以有一个HAVING子句而没有GROUP BY子句,尽管这一点并不广为人知。
在这种情况下,HAVING子句应用于整个集合。显然,SELECT子句不能引用任何列,否则您将(纠正)得到错误,“列在SELECT中无效,因为它不包含在GROUP BY中”等。
因此,必须使用文字值(因为SQL不允许结果集为零列——为什么?!),通常使用文字值1 (INTEGER):如果HAVING子句的值为TRUE,则结果集将是一行,其中一列显示值1,否则您将得到空集。
示例:查找一个列是否有多个不同的值:
SELECT 1
FROM tableA
HAVING MIN(colA) < MAX(colA);
如果你不知道你的表中是否存在任何数据,你可以使用以下查询:
SELECT cons_value FROM table_name;
例如:
SELECT 1 FROM employee;
它将返回一个包含行总数的列,并且所有行都具有相同的常量值1(这次它为所有行返回1); 如果表中没有行,它将不返回任何内容。
因此,我们使用这个SQL查询来知道表中是否有任何数据&行数表示这个表中有多少行。
Select 1 from table被一些数据库用作测试连接的查询,以查看它是否处于活动状态,通常用于从连接池检索或返回连接。
更具体地说,您将使用这个来做
SELECT 1 FROM MyUserTable WHERE user_id = 33487
而不是做
SELECT * FROM MyUserTable WHERE user_id = 33487
因为你不关心结果。对于数据库来说,请求数字1非常容易(因为它不需要进行任何查找)。