1

Oracle 10g データベースで、結果行が複数ある場合にのみ結果行を返す SQL クエリを作成したいと考えています。

それは可能ですか?

4

3 に答える 3

8

返された結果の数を数える必要があります。グループを作成したくない場合は、次を使用できます。

SELECT *
  FROM (SELECT col1,
               col2,
               COUNT(*) OVER() cnt
          FROM your_table
         WHERE <conditions> )
 WHERE cnt > 1
于 2012-06-29T09:05:09.353 に答える
1
select * from 
  (select column1,column2,column3,
    (select count(*) from table1 where '*XYZ Condition*' ) as rowCount 
  from table1 where '*XYZ Condition*') 
where rowCount > 1;

クエリの両方の場所に同じ条件を配置する必要があるだけです。つまり、「XYZ 条件」は両方のwhere句で同じです。

于 2012-06-29T10:08:00.577 に答える
0

次のような結果が必要ですか?

c1   c2
1    AA
1    BB
2    CC

結果:

c1   c2
1    AA,BB
2    CC

以下はあなたの要件を満たすことができます。

select c1,ltrim(sys_connect_by_path(c2,','),',') from (
  select c1,c2, row_number() over(partition by c1 order by c2)rn, 
                     count(*) over(partition by id ) cnt from XXX  -- XXX: your table
                 ) a  where level=cnt
              start with rn=1  connect by prior c1=c1 and prior rn=rn-1
于 2012-06-29T09:24:32.577 に答える