SELECT 子句可以具有可选的 TOP 子句,并遵循可选的 ALL/DISTINCT 修饰符。 TOP 子句指定仅从查询结果返回第一组行。
语法
[ TOP (n) ]
论据
n
指定要返回的行数的数值表达式。
n
可以是单个数值文本或单个参数。
注解
TOP 表达式必须是单个数值文本或单个参数。 如果使用常量文本,则文本类型必须隐式提升到 Edm.Int64(字节、int16、int32 或 int64 或任何映射到可提升到 Edm.Int64 的类型)的提供程序类型,其值必须大于或等于零。 否则将引发异常。 如果参数用作表达式,则参数类型还必须隐式地提升到 Edm.Int64,但在编译期间不会验证实际参数值,因为参数值已延迟绑定。
下面是常量 TOP 表达式的示例:
select distinct top(10) c.a1, c.a2 from T as a
下面是参数化 TOP 表达式的示例:
select distinct top(@topParam) c.a1, c.a2 from T as a
除非对查询进行排序,否则 TOP 是不确定的。 如果需要确定性结果,请使用 ORDER BY 子句中的 SKIP 和 LIMIT 子句。 TOP 和 SKIP/LIMIT 互斥。
示例:
以下 Entity SQL 查询使用 TOP 指定要从查询结果返回的前一行。 查询基于 AdventureWorks 销售模型。 若要编译并运行此查询,请执行以下步骤:
按照作方法中的过程作 :执行返回 StructuralType 结果的查询。
将以下查询作为参数传递给
ExecuteStructuralTypeQuery
方法:SELECT VALUE TOP(1) contact FROM AdventureWorksEntities.Contacts AS contact