前1&前1 1(Expr1000 1)典型输出

时间:2017-11-13 17:21:48

标签: sql

SELECT TOP 1 * FROM Customers;

这为我提供了第一行的所有客户详细信息

( customerid, customer name etc..,)
SELECT TOP 1 1 FROM Customers;

我得到了o / p

  Expr1000
 ------------
     1

但我真的不明白上面的输出,我搜索了它但却无法清楚地理解它。

3 个答案:

答案 0 :(得分:1)

如果您的第一个查询*意味着显示所有字段

可是:

SELECT TOP 1 1 FROM Customers;

等于:

SELECT TOP 1   
       1 as myConstantField FROM Customers;

因此,您创建一个常量字段,并且客户中的每一行都会获得1,但TOP 1将仅过滤到第一行

答案 1 :(得分:0)

第二个“1”不被视为一列,它只是一个常数。因此,使用此查询,您要求写下一行(TOP 1)行,其中一列具有常量“1”。如果你写这样的东西会发生同样的事情:

SELECT TOP 1 'Hey you', 1 as valueone ,2 ,3, customerid
FROM Customers ;

你会有一行的值为'嘿你',列'“valueone”中的'1','2','3'然后是第一行的customerid

答案 2 :(得分:0)

当你

SELECT 1

它只显示一行1.当你

SELECT 1 FROM Customers

它将为您提供Customers中的行数。所以,当你

SELECT TOP 1 1 FROM Customers

它只会给你第一行1,就像你做的那样

SELECT TOP 1 * FROM Customers