我看到过很多这样的问题。

Select 1  
From table

这个1是什么意思,它将如何执行,它将返回什么?

另外,在什么类型的场景中可以使用它?


当前回答

如果你的意思是

SELECT * FROM AnotherTable
  WHERE EXISTS (SELECT 1 FROM table WHERE...) 

那么1优于

SELECT * FROM AnotherTable
  WHERE EXISTS (SELECT * FROM table WHERE...) 

EXISTS中的1或*被忽略,你可以按照ANSI SQL 1992标准的第191页写:

SELECT * FROM AnotherTable
  WHERE EXISTS (SELECT 1/0 FROM table WHERE...) 

其他回答

这意味着你想要一个值“1”作为输出,或者大部分时间用作内部查询,因为出于某种原因,你想要根据内部查询的结果计算外部查询。不是所有的时候你都用1,但是你有一些特定的值…

这将静态地为您提供值1的输出。

Select 1 from table被一些数据库用作测试连接的查询,以查看它是否处于活动状态,通常用于从连接池检索或返回连接。

它简单地表示您正在从表,,,,中检索数字第一列 select empl_num,Empl_no From Employees; 这里你使用select 1 from Employees; 这意味着您正在检索Emply_num列。 谢谢

这只是为了方便使用IF EXISTS()。否则你可以跟我走

Select * from [table_name]

在'IF EXISTS'的情况下,我们只需要知道任何具有指定条件的行存在与否与行内容无关。

select 1 from Users

上面的示例代码,返回no。等于no。单列中有1的用户

如果你只是想根据WHERE子句检查是真还是假,从表中选择1,其中条件是最便宜的方法。