1つの列(Idx)に基づいて出力を特定の形式で返す必要があるという要件が1つあります。 1つの列には、ループを実行する日付範囲があります。Oracle特定の形式の文字列を返す方法
drop table t_table_test;
create table t_table_test (ID NUMBER, NM VARCHAR2(4000), VAL VARCHAR2(4000), IDX NUMBER);
select * from t_table_test;
INSERT INTO t_table_test VALUES (1,'CNTRY', 'USA',1);
INSERT INTO t_table_test VALUES (1,'DT', '2017-01-01,2017-01-02',2);
INSERT INTO t_table_test VALUES (1,'PART', 'NA',3);
入力が
ID NM VAL IDX
1 CNTRY USA 1
1 DT 2017-01-01,2017-01-02 2
1 PART NA 3
出力を下回っている場合は、このIDX欄
ID NM VAL IDX
1 DT 2017-01-01,2017-01-02 1
1 CNTRY USA 2
1 PART NA 3
DT:2017-01-01,CNTRY:USA,PART:NA?DT:2017-01-02,CNTRY:USA,PART:NA
はWHERE IDX t_table_test。DELETE FROM
CNTRY:USA,DT:2017-01-01,PART:NA?CNTRY:USA,DT:2017-01-02,PART:NA
I/Pに基づいて行われますする必要があります= 3; コミット。 O/P DT:2017-01-01、CNTRY:USA?DT:2017-01-02、CNTRY:USA t_table_testから削除する場所idx = 1; コミット。 O/P DT:2017-01-01?DT:2017-01-02 上記のすべてのケースで機能するクエリが必要です。
ただ明白です:複数のレコードのVAL列に複数の値が含まれるとどうなりますか?たとえば、NM = CNTRY、VALUE = USAの場合、CANADAとIDX = 1、NM = DT、VAL = 2017-01-01,2017-01-02、IDX = 2の場合は、 – Assafs
ありがとうございました複数の値はDTのためだけにあります。他の列には複数のエントリがありません。 – Vikas