2010-12-21 55 views
2

我在调试程序时遇到类似'SELECT 1 FROM TABLE_NAME''SELECT 2 FROM TABLE_NAME'的sql查询。我很好奇查询中的数字以及返回的结果集。SELECT语句中的数字

由于

+2

它将返回数字作为结果数据和列名称 – 2010-12-21 06:44:27

+0

使用SELECT 1 FROM dual – 2010-12-21 06:45:10

回答

5

它将与数返回单个列值,与n行,n是从选择返回的行的数目。

这是在诸如

SELECT * 
FROM YourTable yt 
WHERE EXISTS(
    SELECT 1 
    FROM SomeOtherTable sot 
    WHERE yt.ID = sot.ID 
    ) 

此外,好文章有用的SELECT 1 vs SELECT * – An Interesting Observation

1

选择1从your_table - >在执行时,你得到的your_table每一行的值1。

执行时没有EXIST条件,'Select *'和'Select 1 or 2'具有相同的性能。我个人的选择是在有条件检查现有行时使用'选择1或2',因为它稍快,例如。当查询具有数百万行和许多列的VIEWS或临时表时。