-2

私のテーブルは次のようになります。

Name  | Text           |    GroupID
------------------------------------
A     | sometext       |    1
B     | x              |    2
C     | x              |    3
D     | sometext2      |    1
E     | x              |    2
F     | abc            |    
G     | sometext3      |    1
H     | x              |    2
I     | x              |    3

GroupID 1 -> ヘッダー行であり、選択しないでください
GroupID 2-... -> 上記のヘッダー (ID = 1) のサブラインであり、そのヘッダー行のテキストで選択する必要があります! グループ ID がまったくない場合は、テキストなしで行を選択する必要があります。

したがって、上記の表からすべてを選択すると、結果は次のようになります。

 B    sometext    2
 C    sometext    3
 E    sometext2   2
 F             
 H    sometext3   2
 I    sometext3   3

select-stmt を構築する方法を知っている人はいますか?

4

2 に答える 2

2

このクエリを試してください:

select 
 t1.name,
 case when t1.groupid is null then '' else 
 (select q.text from
   (select rownum as counter,name,text from TableName where groupid=1)q 
 where 
  q.counter = (select max(rownum) from TableName t2 where groupid=1 and
  t2.name<=t1.name))end as Text,
 t1.groupid 
from 
 TableName t1 
where 
 (t1.groupid<>1 or t1.groupid is null);
于 2013-10-14T10:19:25.283 に答える