TOP (实体 SQL)

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 子句中的 SKIPLIMIT 子句。 TOP 和 SKIP/LIMIT 互斥。

示例:

以下 Entity SQL 查询使用 TOP 指定要从查询结果返回的前一行。 查询基于 AdventureWorks 销售模型。 若要编译并运行此查询,请执行以下步骤:

  1. 按照作方法中的过程作 :执行返回 StructuralType 结果的查询

  2. 将以下查询作为参数传递给 ExecuteStructuralTypeQuery 方法:

    SELECT VALUE TOP(1) contact FROM AdventureWorksEntities.Contacts AS contact
    

另请参阅