1

次の行の「配置」値を取得して、nextAlign というフィールドの現在の行に格納しようとしています。グループ化を使用してみましたが、このテーブルの一意の識別子も一貫しておらず、常に 1 ずつ増えるとは限りません。以下にいくつかのデータを示します。

 type        field                        starttop startleft  length  decimals alignment
-------------------------------------------------------------------------------------------
Text      CUSTOMER DETAILS CONFIRMATION      13.00     38.00     30.00     0.00      Centre
Text      Please spare a few minutes to      15.00     2.00      30.00     0.00      Left          
Text      confirm your details as held       15.00     2.00      30.00     0.00      Wrap      
Text      on our system. You may fax the     15.00     2.00      30.00     0.00      Wrap      
Text      form to the number above.          15.00     2.00      30.00     0.00      Wrap      
Text      Any information you may supply     17.00     2.00      30.00     0.00      Left          
Text      will not be made available to      17.00     2.00      30.00     0.00      Wrap      
Text      third parties according to the     17.00     2.00      30.00     0.00      Wrap      
Text      Privacy Act.                       17.00     2.00      30.00     0.00      Wrap      
Text      Legal name:                        20.50     2.00      30.00     0.00      Left

私が欲しいのは、次のデータを持つ「nextAlign」という列だけです:

nextAlign

-Left
-Wrap
-Wrap 
-Wrap
-Left
-Wrap
4

3 に答える 3

2

DBMS を指定しなかったため、これは ANSI SQL です。

select type, 
       field, 
       align, 
       lead(align) over (order by starttop) as next_align,
       starttop,
       startleft
from the_table
于 2012-11-15T11:07:00.743 に答える
0

ROW_NUMBER() OVER(ORDER BY) を使用

この方法で同じ選択に外部結合します:select_1_rownumber = select_2_rownumber + 1

于 2012-11-15T11:07:45.720 に答える
0
with temptable as 
( select rownum
         ,type 
         ,field 
         ,starttop 
         ,startleft 
         ,length 
         ,decimals 
         ,alignment 
    from YOURTABLE )
select   t.type 
         ,t.field 
         ,t.starttop 
         ,t.startleft 
         ,t.length 
         ,t.decimals 
         ,t.alignment
         ( select tt.alignment from temptable tt where tt.rownum = t.rownum+1 ) nextalign
    from temptable t

あなたのために働くかもしれません。

于 2012-11-15T11:07:56.853 に答える