Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.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
SQL Server 2012正在获取表中没有唯一标识符的最后一行_Sql_Sql Server - Fatal编程技术网

SQL Server 2012正在获取表中没有唯一标识符的最后一行

SQL Server 2012正在获取表中没有唯一标识符的最后一行,sql,sql-server,Sql,Sql Server,我在表中有一个文本数据类型,希望得到最后一行 我使用以下SQL并得到正确答案,我想知道是否从查询中选择了REACH 2012-13,因为它是表中的最后一行,或者因为REACH 2012-13作为字符串出现在REACH 2011-12之后。希望这有意义 谢谢 SELECT TOP 1 [Reach Report] FROM [REACH Reference] ORDER BY [Reach Report] DESC 给我 REACH 2012-13 数据如下: REACH 2009-10

我在表中有一个文本数据类型,希望得到最后一行

我使用以下SQL并得到正确答案,我想知道是否从查询中选择了REACH 2012-13,因为它是表中的最后一行,或者因为REACH 2012-13作为字符串出现在REACH 2011-12之后。希望这有意义

谢谢

SELECT  TOP 1 [Reach Report]
FROM [REACH Reference]
ORDER BY [Reach Report] DESC 
给我

REACH 2012-13
数据如下:

REACH 2009-10
REACH 2010-11
REACH 2011-12
REACH 2012-13  
从10000英尺的角度来看:

在每个
Reach报告
值之间进行字符串比较,每个比较的结果用于对4行进行排序(
order BY[Reach Report]DESC


然后,选择并返回第一个(
selecttop1[Reach Report]
)。

我不明白你的问题。关于
TOP
,您到底想知道什么?提示:
TOP
与通过
ORDER BY
子句提供的显式排序有关,而与
SELECT
子句中列的数据类型无关<代码>顶部根本不在乎你选择了什么;它只关心您想选择多少
。既然它给出了您想要的最后一行,那么您的问题是什么呢???@MitchWheat您的评论的含义(完整形式)是什么?阅读在线好书忘记“数据库中的最后一行”的概念-SQL中没有这样的东西(底层技术实现不算在内). 将数据库表视为一篮子记录——哪一个是第一个,哪一个是最后一个?您必须始终使用显式顺序,尤其是TOP关键字。例如“选择顶部…”。。。。对不起,我代表我提出了一个措词不当的问题。我想知道是否从查询中选择了REACH 2012-13,因为它是表中的最后一行,还是因为REACH 2012-13作为字符串出现在REACH 2011-12之后。之所以选择REACH 2012-13,是因为它是有序结果集中的第一行,如我提供的示例所示。
REACH 2012-13
REACH 2011-12
REACH 2010-11
REACH 2009-10