1

Oracleデータベースから行全体を選択できるようにするSQLステートメントが必要ですが、個別の列によって選択します。単純化されたデータベースは次のとおりです。

    Project_Num    Title        Category
    0              Project 1    Admin
    0              Project 1    Development
    1              Project 2    Admin
    2              Project 3    Development

次の結果セットを返すステートメントが必要です。

0     Project 1    Admin
1     Project 2    Admin
2     Project 3    Development

そのため、各プロジェクトは、その project_num とタイトルが一意であるかどうかに基づいて返されます。プロジェクトにカテゴリが異なる 2 つ以上のエントリがある場合、そのプロジェクトを 1 回だけ選択する必要があります (そのプロジェクトにどのエントリを選択してもかまいません)。

誰でも私を助けてもらえますか?

4

3 に答える 3

6
SELECT Project_Num, Title, MIN(Category) AS Category
FROM MyTable
GROUP BY Project_Num, Title;
于 2009-09-22T22:47:26.470 に答える
2
SELECT *
FROM (SELECT DISTINCT YourDistinctField FROM YourTable) AS A
CROSS APPLY 
( SELECT TOP 1 * FROM YourTable B 
  WHERE B.YourDistinctField = A.YourDistinctField ) AS NewTableName

私はこれを何時間も理解しようとしてきましたが、うまくいかなかった多くの解決策を試しましたが、最終的に「トップ1に参加」を検索し、見つけた解決策を別の検索に適応させることで解決しました.

于 2011-04-25T22:54:16.900 に答える
2

結果セットにカテゴリ列が必要ですか?

そうでない場合は、次を使用できます。

SELECT DISTINCT Project_Num, Title
FROM MyTable
于 2009-09-22T22:54:45.893 に答える