Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tsql 使用max键从表中获取值_Tsql - Fatal编程技术网

Tsql 使用max键从表中获取值

Tsql 使用max键从表中获取值,tsql,Tsql,我有一个包含两列的表: UserId (auto int) Email(Nvarchar) 我想检索上次插入表中的电子邮件 我尝试了一些选择,但似乎没有任何效果 提前谢谢。也许只是: SELECT TOP 1 email FROM dbo.Table ORDER BY UserId DESC 或 然而,滥用主键列来显示“last inserted”之类的信息并不是一个好的做法。为此添加datetime列 您还可以使用行号功能: WITH x AS ( SELECT UserId,

我有一个包含两列的表:

UserId (auto int)
Email(Nvarchar) 
我想检索上次插入表中的电子邮件

我尝试了一些选择,但似乎没有任何效果

提前谢谢。

也许只是:

SELECT TOP 1 email FROM dbo.Table ORDER BY UserId DESC

然而,滥用主键列来显示“last inserted”之类的信息并不是一个好的做法。为此添加datetime列

您还可以使用
行号
功能:

WITH x  AS (
    SELECT UserId, Email,
        rn = Row_number() OVER(ORDER BY UserId DESC) 
    FROM   dbo.table) 
SELECT UserId, Email
FROM   x 
WHERE  rn = 1 

谢谢你的回答。我已经试过了,但似乎没有任何效果。我只希望引用该用户ID的电子邮件存储在一个变量中。我正在网站创建中使用它,并尝试获取存储在db上的最后一封电子邮件,以便向此人发送电子邮件。你能理解吗?@user2017968:我的sql在sql server management studio中工作吗?我想问题出在别的地方。如果您只需要eamil列,是否已将我的查询改为
选择电子邮件…
而不是
选择用户ID,改为电子邮件…
?是的,但出现了错误。所以我需要假设错误在其他地方?我做了编辑答案的第一个建议,它是有效的。现在的错误是nedds值必须是字符串类型,而不是字符串类型。不管怎样,第一个问题已经解决了,非常感谢你的帮助。你能告诉我们你试过什么吗?
WITH x  AS (
    SELECT UserId, Email,
        rn = Row_number() OVER(ORDER BY UserId DESC) 
    FROM   dbo.table) 
SELECT UserId, Email
FROM   x 
WHERE  rn = 1