2010-12-21 54 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或臨時表時。