top 1 1

这个是今天刚发现的,以前都是top 10 这样的用法,今天看到这个用法竟然懵逼了,所以到网站查了一下,

百度上的结果:

 

 

这个是SQLSERVER选择表中符合条件的前N行记录的语句。
不过,TOP后边跟的一定是一个数字,你这个1 1,中间空了一个格,不是十一,也不是1,那就分开看,SELECT TOP 1这是一段,选择第一行,第一行什么,第一行的1,就是说如果符合条件,WHERE条件,查询有数据,就会查到一行1,否则,没有结果。

我们常理解的是SELECT * FROM TABLE,这个是选择表TABLE中所有的数据。
那么SELECT 1 FROM TABLE,这个语句也是成立的,只不过根据表中的行数,每一行都是1。
SELECT TOP 1 * FROM TABLE,这个是选TABLE的第一行记录。
SELECT TOP 1 1 FROM TABLE,那就是借用这个TABLE的行,把列换成了固定值,1

对于这个问题来说我们只要看:

那么SELECT 1 FROM TABLE,这个语句也是成立的,只不过根据表中的行数,每一行都是1。
SELECT TOP 1 1 FROM TABLE,那就是借用这个TABLE的行,把列换成了固定值,1
这两个说法;

我们先来看第一个:


似乎明白一点这样查询后的结果了吧,这样查询时把所有其他列和数据全部清除,并赋值  1,再看下面,似乎更明了这个数值的意义。

 

大胆猜想一下,是否其他字符也可以呢?

是的,可以的,对于更多的大家自己测试,这里我想这种写法是一个快速判断的方法吧,

因为有时候我们只要判断的是这个表是否有数据(可能方法有很多)我们只来说这个,

看示例:

我们捕捉一个大概的时间,

这个两个时间相差可以很明白让你做出选择性,所以在用方法的时候,正确的方法还是很重要的。

 

如果还是不明白就多看几遍这个:

SELECT TOP 1 1 FROM TABLE,那就是借用这个TABLE的行把列换成了固定值 1

posted @ 2016-09-26 11:21  山顶洞外人  阅读(390)  评论(0编辑  收藏  举报