[英]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.