-1

上位100レコードをプルできるクエリが必要です。この場合、50は「house」の値を持つ「Name」という名前の列からのものであり、同じ列には「plane」の値を持つ別の50レコードが含まれている必要があります。

以下はそのサンプルテーブルです。

ID  Item_Code   Name    Source
1   987         House   PG
2   988         House   TES
3   989         Plane   ASD
4   990         House   WAL
5   991         Plane   PG
6   992         Plane   TES
4

2 に答える 2

4

Oracleにタグを付けましたが、Oracleでは機能しない独自のTSQL構文を使用して回答を受け入れました。タグ付きとしてOracleを使用していると仮定すると、次を使用できます。

SELECT "ID",
       "Item_Code",
       "Name",
       "Source"
FROM   (SELECT YourTable.*,
               ROW_NUMBER() OVER (PARTITION BY "Name" ORDER BY "Item_Code") rn
        FROM   YourTable
        WHERE  "Name" IN ( 'House', 'Plane' ))
WHERE  rn <= 50; 

SQLフィドル

于 2013-02-16T20:37:23.233 に答える
-7

あなたはこれを使うことができます:

SELECT TOP 50 *
FROM sample_table
WHERE Name = 'House'
UNION ALL
SELECT TOP 50 *
FROM sample_table
WHERE Name = 'Plane'
于 2013-02-16T14:34:27.653 に答える