1

我正在构建一个具有 SQL Server 数据库连接的冷融合应用程序。我需要组记录,并且只返回组中的第一个。我在coldfusion中写了以下查询。

SELECT FIRST(ID)
FROM table
GROUP BY NAME

返回以下错误:

[Macromedia][SQLServer JDBC 驱动程序][SQLServer]'first' 不是可识别的内置函数名称。

在冷融合查询中使用第一个函数的方法是什么?

有没有其他方法可以做到这一点?

*我没有直接访问数据库的权限。只需访问冷聚变数据连接

4

2 回答 2

6

FIRST在 SQL Server 中无效(您必须考虑 Access)。也许你的意思是:

SELECT NAME, MIN(ID)
FROM dbo.table
GROUP BY NAME;

在 SQL Server“Denali”中,您将能够将FIRST_VALUE/LAST_VALUE与窗口函数结合使用。

于 2011-09-12T19:20:35.803 回答
0

Sql Server 2005 或 2008 中不存在 FIrst 和 Last,但在 Sql Server 2012 中存在 FirstValue、LastValue 函数。我尝试为 Sql Server 2005 实现聚合 First 和 Last 并遇到障碍,即 sql server 确实保证以定义的顺序计算聚合。(见属性 SqlUserDefinedAggregateAttribute.IsInvariantToOrder 属性,未实现。)这可能是因为查询分析器尝试在多个线程上执行聚合的计算并组合结果,这加快了执行速度,但不保证顺序聚合了哪些元素。

于 2011-12-02T10:00:09.913 回答