2017-11-23 2 views

答えて

2
SELECT * FROM Mytable WHERE insertdate = (SELECT MAX(insertdate) FROM Mytable) 
2

あなたもこれを行うことができます:

CREATE VIEW MyView AS 
    SELECT TOP (1) WITH TIES t.* 
    FROM Mytable t 
    ORDER BY CAST(insertdate as date) DESC; 

insertdate場合は、すでに日付として宣言され、その後、cast()は必要ありません。

パフォーマンスを実現するため
CREATE VIEW MyView AS 
    SELECT TOP (1) WITH TIES t.* 
    FROM Mytable t 
    ORDER BY insertdate DESC; 

、私が推薦しますインデックスはmytable(insertdate)です。

+0

複数の行が同じ日付に作成された場合はどうなりますか? –

+1

@ ColinMackay。 。 。私は「結びつき」を付け加えました。 –

+1

これは、 'insertdate'が' NULL'の行だけがテーブルに含まれている場合、このクエリは意味的に最初のものと同じ意味ではありません。 (これはおそらく実際には* more *を返すのでうまくいくでしょう、私はこの答えが間違っていると言っているわけではありません)。 –

関連する問題