(旧帖重登)数据库是如何Order by的(polugen.mblogger.cn)

原文在http://polugen.mblogger.cn
这个问题在Sybase和Sql Server中存在,大家都很熟悉如下代码

Declare @s varchar(200)
select @s=''
SELECT @s=@s+F_XTBH FROM  LSXTMC
PRINT @s--返回F_XTBH的所有连接结果

它是如何赋值的呢,应该是检索完一条语句,然后赋值

但是如下语句,注意,增加了一个ORDER BY

Declare @s varchar(200)
select @s=''
SELECT @s=@s+F_XTBH FROM  LSXTMC  ORDER BY F_XTBH
PRINT @s--返回F_XTBH排序后最后一条记录的值

估计可能的情况是,在数据库先不进行计算,ORDER by之后再进行一次执行赋值,这样SELECT @s=@s+F_XTBH 之执行了一次。

原文地址:https://www.cnblogs.com/polugen/p/19119.html