質問

SQL Serverデータベース接続を備えたCold Fusionのアプリケーションを構築しています。グループレコードが必要で、グループの最初の記録のみを返します。 ColdFusionで次の質問を書きました。

SELECT FIRST(ID)
FROM table
GROUP BY NAME

これは次のエラーを返しています。

MacRomedia] [SQLServer JDBC Driver] [SQLServer] 'First'は、認識されている組み込み関数名ではありません。

A Wayは、ColdFusionクエリで最初の関数を使用していますか?

これを達成するための代替方法はありますか?

*データベースに直接アクセスできません。 Cold Fusionデータ接続へのアクセスだけです

役に立ちましたか?

解決

FIRST SQL Serverでは有効ではありません(アクセスを考えている必要があります)。多分あなたは意味しました:

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

SQL Server "Denali"で使用できるようになります FIRST_VALUE/LAST_VALUE ウィンドウ機能と組み合わせて。

他のヒント

最初と最後はSQL Server 2005または2008には存在しませんが、SQL Server 2012にはFirstValue、LastValue関数があります。 SQL Server 2005の集計を最初と最後に実装しようとし、SQL Serverが定義された順序で集計の計算を保証する障害に至りました。 (属性sqluserdefinedagggregateattribute.isinvarianttoorderプロパティを参照してください。これは実装されていません。)これは、クエリアナライザーが複数のスレッド上の集計の計算を実行し、結果を組み合わせることを試みます。どの要素が集約されているか。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top