idkこれについて正しい質問をするにはどうすればよいですか、ここでは、ランクで特定の単語を表示する方法は?
私はこのmy_tableを持っています。 INFO STARTとINFO ENDの間に1つのレートを表示する必要があります。
RATE:
1. BEST
2. BETTER
3. GOOD
私は「より良い」とINFO STARTとEND INFOの範囲内で「良い」の両方を持っているのであれば、私は代わりに「良い」の「より良い」を表示します。そして、「最高」がそこにあるなら最高であることを「最高」。
MY_TABLE
RNUM VAL
1 game of thrones
2 electric fan
3 INFO START
4 name: polo
5 white
6 better
7 slacks
8 tv
9 good
10 INFO END
11 keyboard
12 guitar
13 INFO START
14 name: mirror
15 best
16 good
17 better
18 INFO END
19 INFO END
20 INFO END
21 bag
22 INFO START
23 name: monitor
24 music
25 best
26 telephone
27 INFO END
28 INFO END
29 ADFASD
私の予想出力
NAME RATE
POLO BETTER
MIRROR BEST
MONITOR BEST
これまでのところ、私は名前や料金を見つける必要がありINFO STARTとEND INFOの範囲を得ることができます。
my code;
declare
v_rnum varchar2(50);
v_val varchar2(50);
v_r_end varchar2(50);
begin
for i in (with t1 as (select rownum rnum_new, a.*
from (select *
from samp2
where val like '%INFO START%'
union
select *
from samp2
where val like '%INFO END%')A
ORDER BY RNUM ASC)
select a.*, b.rnum rnum_end
from t1 a inner join t1 b
on a.rnum_new + 1 = b.rnum_new
where a.val like '%INFO START%')
loop
dbms_output.put_line(i.rnum ||' ' || i.val|| ' '|| i.rnum_end);
end loop;
end;
相続人は、その出力は、(私はこれまでのテストのためにDBMS_OUTPUT使用しかし、私はそれをテーブルに挿入されます後で 場合、私は右の率を得ることができます)
3 INFO START 10
13 INFO START 18
22 INFO START 27
ので、任意のアイデアはどのように表示します料金は?私は私のランク()ここで私の料金のために使用することができると思うが、私はこの事でそれを使用するには慣れていない。あなたはそれをする方法や提案を持っていますか? rank()またはこれを解決できるスタイル。ありがとう!あなたが私の英語を理解して欲しいです。
は、ここでは、このコードを使用することができます
CREATE TABLE samp (
val varchar(50)
);
INSERT INTO samp (val) VALUES ('game of thrones');
INSERT INTO samp (val) VALUES ('electric fan');
INSERT INTO samp (val) VALUES
('INFO START');
INSERTINSERT INTO samp (val) VALUES
('Name: Polo');
INSERT INTO samp (val) VALUES
('White');
INSERT INTO samp (val) VALUES
('Better');
INSERT INTO samp (val) VALUES
('Slacks');
INSERT INTO samp (val) VALUES
('Tv');
INSERT INTO samp (val) VALUES
('Good');
INSERT INTO samp (val) VALUES
('INFO END');
INSERT INTO samp (val) VALUES
('keyboard');
INSERT INTO samp (val) VALUES
('Guitar');
INSERT INTO samp (val) VALUES
('INFO START');
INSERT INTO samp (val) VALUES
('Name: Mirror');
INSERT INTO samp (val) VALUES
('Best');
INSERT INTO samp (val) VALUES
('Good');
INSERT INTO samp (val) VALUES
('Better');
INSERT INTO samp (val) VALUES
('INFO END');
INSERT INTO samp (val) VALUES
('INFO END');
INSERT INTO samp (val) VALUES
('INFO END');
INSERT INTO samp (val) VALUES
('Bag');
INSERT INTO samp (val) VALUES
('INFO START');
INSERT INTO samp (val) VALUES
('Name: Monitor');
INSERT INTO samp (val) VALUES
('music');
INSERT INTO samp (val) VALUES
('best');
INSERT INTO samp (val) VALUES
('telephone');
INSERT INTO samp (val) VALUES
('INFO END');
INSERT INTO samp (val) VALUES
('INFO END');
INSERT INTO samp (val) VALUES
('ADFASD')