SELECT TOP 1 * FROM Customers;
这为我提供了第一行的所有客户详细信息
( customerid, customer name etc..,)
SELECT TOP 1 1 FROM Customers;
我得到了o / p
Expr1000
------------
1
但我真的不明白上面的输出,我搜索了它但却无法清楚地理解它。
答案 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