在SQL Server中选择最新插入的记录
我的表有SubId、QId、Question、AnswerOptions和Ans。SubId是外键,QId是主键。我需要的是选择最新插入的记录并将其显示在文本框中 我已经试着回答这些问题了在SQL Server中选择最新插入的记录,sql,sql-server,Sql,Sql Server,我的表有SubId、QId、Question、AnswerOptions和Ans。SubId是外键,QId是主键。我需要的是选择最新插入的记录并将其显示在文本框中 我已经试着回答这些问题了 SELECT * FROM tblQuestions SELECT SCOPE_IDENTITY () SELECT MAX(QId) FROM tblQuestions SELECT TOP 1 QId FROM tblQuestions ORDER BY QId DESC 但是我得
SELECT * FROM tblQuestions
SELECT SCOPE_IDENTITY ()
SELECT MAX(QId) FROM tblQuestions
SELECT TOP 1 QId
FROM tblQuestions
ORDER BY QId DESC
但是我得到了第一条记录,当我第一次插入时,我尝试了MAX,它显示值1,我尝试了MIN,它也显示值1。如何获取最新值
注意:最新的值是QId的最大值。因为Qld是varchar类型,所以这应该可以工作: SQL Server:
SELECT TOP 1 *
FROM tblQuestions
ORDER BY Qld ASC
MySQL:
SELECT Qld FROM tblQuestions
ORDER BY Qld ASC
LIMIT 1
MS访问:
SELECT LAST(Qld)
FROM tblQuestions
研究:
从该表中获得上一个插入记录id的具有Identity属性的表如下所示
SELECT SCOPE_IDENTITY()
试试这个会有用的
;WITH x AS
(
SELECT
*, r = RANK() OVER (ORDER BY QId DESC)
FROM tblQuestions
)
SELECT *
FROM x
WHERE r = 1;
它不应该起作用。QId是Varchar50。但我插入了1,2,3。。。当我尝试此查询时,得到值1。非最大值或上次插入值使用“从tblQuestions中选择TOP 1*”,Qld DESC的订单应起作用。你确定表中的数据比初始数据多吗?我刚刚重新创建并测试了它,并根据Qld ASC的工作顺序进行了更改。更新答案这是有效的;x为SELECT*,r=按QId DESC从TBLQUESTIES SELECT*从x排序,其中r=1;此表有SubId、QId、Question、AnsOption和Ans列。SubId有外键。否,当我使用此函数时,我得到第一行。欢迎使用StackOverflow:如果您发布代码、XML或数据示例,请在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码示例”按钮{},以很好地格式化和语法突出显示它!下次我会成功的
;WITH x AS
(
SELECT
*, r = RANK() OVER (ORDER BY QId DESC)
FROM tblQuestions
)
SELECT *
FROM x
WHERE r = 1;
WITH get AS
(
SELECT
*, row = ROW_NUMBER OVER (ORDER BY qid DESC)
FROM tbl
)
SELECT *
FROM get
WHERE row = 1;