/**解決方法的核心是:產生出1-10的乙個列,作為「輔助列」**/
select level l from dual connect by level<=10;
【問題】
兩個表 a b
a 表:
id pid
a1 1
a2 2
a3 3
b 表:
pid pnumber
1 22 3
3 5要根據pnumber的數量生成這樣的資料
id list
a1 a1-1
a1 a1-2
a2 a1-1
a2 a1-2
a2 a1-3
a3 a1-1
a3 a1-2
a3 a1-3
a3 a1-4
a3 a1-5
/**建立測試的表t1 也就是樓主說的a表**/
create table t1(
id varchar2(10),
pid varchar2(10)
);/**建立測試的表t2 也就是樓主說的b表**/
create table t2(
pid varchar2(10),
pnumber varchar2(10)
);/**插入t1的資料,插入t2的測試資料**/
insert into t1 values('a1','1');
insert into t1 values('a2','2');
insert into t1 values('a3','3');
insert into t2 values('1','2');
insert into t2 values('2','3');
insert into t2 values('3','5');
/**解決方法的核心是:產生出1-10的乙個列,作為「輔助列」**/
select level l from dual connect by level<=10;
/**最終的sql**/
select t1.id, 'a1-'||t3.dz as list
from t1, t2, (select level dz from dual connect by level <= 10) t3
where t1.pid = t2.pid
and t3.dz <= t2.pnumber
order by 1,2;
Oracle 正則 一行轉多行
select regexp substr bjdm 1,level,i as str,bjdm from valueweekinfo connect bylevel length bjdm length regexp replace bjdm,1 可以將 bjdm 換成 01,02,03,04 va...
hive使用技巧(五) 一行轉多行,多行轉一行
hive使用技巧 一 自動化動態分配表分割槽及修改hive表字段名稱 hive使用技巧 二 共享中間結果集 hive使用技巧 三 巧用group by實現去重統計 hive使用技巧 四 巧用mapjoin解決資料傾斜問題 hive使用技巧 五 一行轉多行,多行轉一行 在資料處理過程中,經常需要使用一...
一行轉多行效果 一
一行轉多行效果顯示 sql with test as select a 4,10 from dual union select b 2,8 from dual select from test a 4 10 a 4 10 b 2 8 需求 現有資料表中的資料形式為 名稱 數量 單價 a 4 10 b...