没有where子句的SQL查询中的参数选择了什么值

时间:2017-11-17 22:08:00

标签: sql sql-server sqlparameter

例如,我有这个查询

SELECT @param = column from table

拉入@param的价值是什么?

我试过这个并且无法弄清楚被拉的价值。它不是旧记录或更新记录。

2 个答案:

答案 0 :(得分:4)

documentation州:

  

为变量分配最后返回的值

但如果没有唯一标识行的WHERE子句或指定排序唯一值的ORDER BY子句,则为表变量分配时选择的行是未定义的并且不具有确定性比一行。

您可以向查询添加ORDER BY以返回最后排序的行。一种更有效的方法是使用SELECT TOP(1)...ORDER BY...DESC。相反,SELECT TOP(1)...ORDER BY...ASC将返回第一个有序行。同样,按列的顺序对于确定性值必须是唯一的。

答案 1 :(得分:0)

这是引用列中的值。好像它应该有一个TOP 1,WHERE Clause设计只能获取1行。