簡體   English   中英

在SQL Server的VIEW中使用DECLARE

[英]Use DECLARE inside a VIEW in SQL Server

我需要做這樣的事情:

CREATE VIEW MyView AS 
DECLARE @MAXDATE AS Date 
@MAXDATE = SELECT MAX(insertdate) FROM Mytable
SELECT * FROM Mytable WHERE insertdate= MAXDATE

每天都有新行插入到我的表中,我需要獲取最后一次插入的子集。 但是我不能這樣做,因為視圖不允許使用DECLARE。

有人嗎

謝謝!

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

您也可以這樣做:

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)上建立索引。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM