JDBCを介したSQL Server First Function
-
29-10-2019 - |
質問
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プロパティを参照してください。これは実装されていません。)これは、クエリアナライザーが複数のスレッド上の集計の計算を実行し、結果を組み合わせることを試みます。どの要素が集約されているか。