2012-10-02 158 views
1

我有以下TSQL查詢:TSQL只顯示第一行

SELECT DISTINCT MyTable1.Date 
    FROM MyTable1 
INNER JOIN MyTable2 
ON MyTable1.Id = MyTable2.Id 
WHERE Name = 'John' ORDER BY MyTable1.Date DESC 

它檢索日期的一個長長的清單,但我只需要在第一個,一個的第一排。

我該如何得到它?

由於一噸!

回答

8

在SQL Server,你可以使用TOP

SELECT TOP 1 MyTable1.Date 
FROM MyTable1 
INNER JOIN MyTable2 
    ON MyTable1.Id = MyTable2.Id 
WHERE Name = 'John' 
ORDER BY MyTable1.Date DESC 

如果你需要使用DISTINCT,那麼你可以使用:

SELECT TOP 1 x.Date 
FROM 
(
    SELECT DISTINCT MyTable1.Date 
    FROM MyTable1 
    INNER JOIN MyTable2 
    ON MyTable1.Id = MyTable2.Id 
    WHERE Name = 'John' 
) x 
ORDER BY x.Date DESC 

甚至:

SELECT MAX(MyTable1.Date) 
FROM MyTable1 
INNER JOIN MyTable2 
    ON MyTable1.Id = MyTable2.Id 
WHERE Name = 'John' 
--ORDER BY MyTable1.Date DESC 
+0

@ user523129根據根據你的需要,你可以使用'MAX()',因爲你只返回一個日期值。 – Taryn