2016-05-13 79 views
0

示例數據庫中的表,員工:如何獲得我在SQL Server查詢中選擇的最後一列的ID?

id  market  firstName 
1  1   John 
2  2   James 
3  1   Sally 
4  1   Mary 
5  2   Susan 

如果我寫了下面的查詢,

SELECT firstName 
FROM employees 
WHERE market = 1 

我會得到下面的數組:

array("John", "Sally", "Mary") 

我使用ODBC連接到一個sql服務器,然後odbc_fetch_array檢索結果。不過,我想也有最後firstNameid拉昇,例如:

array("John", "Sally", "Mary", 4) 

我已經知道如何與兩個查詢做到這一點,但我希望提高性能,我會怎麼做這一個查詢?

如果很重要,我使用odbc連接到一個sql服務器。

謝謝。

+0

我想如果你使用第二個查詢獲取該值那將是非常容易的。它是可行的嗎?還是隻有一個查詢? – nanocv

+2

'SELECT id,firstname FROM employees WHERE market = 1'不會影響查詢的性能。 – Stack

+0

是的,其實我同意@StackExchanger – nanocv

回答

2

既然你不能在數組中混合使用數據類型,那麼如果最後一個id返回爲一個字符串的話,我會認爲它是可以的。

在這種情況下,你可以使用全部UNION:

SELECT firstName 
FROM employees 
WHERE market = 1 
UNION ALL 
SELECT CAST(MAX(id) AS varchar(31)) 
FROM employees 
WHERE market = 1 
+0

謝謝你的幫助。此語句不會返回我拉取的最後一個人的ID,它會返回數據庫中最後一列的ID。因此,在這個例子中,它會返回數組(「John」,「Sally」,「Mary」,「5」),我希望它返回數組(「John」,「Sally」,「Mary」,「 4" )。 –

+1

您是否包含最後一個'WHERE market = 1'?你得到的結果應該是不可能的,如果你做到了。 –

+0

其實我真正的查詢有一個前200名,我忘了把第二次200。我看到這是有效的。非常感謝你!! –

相關問題