我想在sql语句中使用MAX函数。这里就是我想要做的事: 是这样的:是否有可能在更新语句中使用SQL使用MAX?
UPDATE MainTable
SET [Date] = GETDATE()
where [ID] = Max
我知道这是不对的专门这里我把WHERE条件,但无法弄清楚如何使用max和更新在同一语句。感谢
我想在sql语句中使用MAX函数。这里就是我想要做的事: 是这样的:是否有可能在更新语句中使用SQL使用MAX?
UPDATE MainTable
SET [Date] = GETDATE()
where [ID] = Max
我知道这是不对的专门这里我把WHERE条件,但无法弄清楚如何使用max和更新在同一语句。感谢
UPDATE MainTable
SET [Date] = GETDATE()
where [ID] = (SELECT MAX([ID]) FROM MainTable)
一种方式
DECLARE @MaxID INT = (select MAX(id) FROM MainTable)
UPDATE MainTable
SET [Date] = GETDATE()
where [ID] = @MaxID
这是SQL 2008的语法,在2005年你需要做的变量declaraion和分配分两步
你也可以使用一个公用表表达
;WITH cte
AS (
SELECT TOP 1 * FROM MainTable
ORDER BY ID DESC
)
UPDATE cte SET [Date] = GETDATE()
实施例可以运行
CREATE TABLE testNow(id int)
INSERT testNow VALUES(1)
INSERT testNow VALUES(2)
;WITH cte
AS (
SELECT TOP 1 * FROM testNow
ORDER BY ID DESC
)
-- id with 2 will become 5
UPDATE cte SET ID = 5
SELECT * FROM testNow
输出
1
5
UPDATE MainTable
SET [Date] = GETDATE()
WHERE [ID] = (SELECT MAX(your column) FROM yourtable)
它工作正常,但我有一个其他问题...为什么Get Date()函数不返回时间戳?它只返回日期。我希望看到时间戳 – user1858332
您最好在论坛上提出这是一个新问题。我不知道如何将DateTime字段设置为时间戳。甚至不知道是否有可能。 – Melanie
感谢大家。它工作 – user1858332