|
|
1
1
如果您使用的是Oracle 12C,那么可以使用正则表达式来实现您的结果。 例如:- create table food_order (order_no number, food_order varchar2(500));
insert into food_order values (1001,'102*4;109*3;101*2');
insert into food_order values (1002,'103*3;108*5;101*3');
insert into food_order values (1003,'106*4;107*3;109*2');
insert into food_order values (1004,'106*4;105*3;101*7');
select * from food_order;
Output:-
ORDER_NO FOOD_ORDER
1001 102*4;109*3;101*2
1002 103*3;108*5;101*3
1003 106*4;107*3;109*2
1004 106*4;105*3;101*7
现在尝试以下查询:- SELECT order_no,
regexp_substr(food_order,'[^*]+', 1,1) AS"ORDER_ID",
regexp_substr(food_order,'[^*]+', 1,2) AS"QUANTITY"
FROM
(SELECT DISTINCT order_no,
regexp_substr(food_order,'[^;]+', 1, level) AS"FOOD_ORDER"
FROM food_order
CONNECT BY regexp_substr(food_order, '[^;]+', 1, level) IS NOT NULL
) temp order by order_no;
|
|
|
2
0
|
|
|
Johnny T · 基于当前值的SQL合并表[重复] 11 月前 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 11 月前 |
|
ojek · 如何对SQL结果进行分组和编号? 12 月前 |
|
|
senek · 如何在PL/SQL中将选择结果(列)放入数组中 12 月前 |
|
|
Sax · 规范化Google表格(第一步) 12 月前 |
|
|
BarıŠUÅaklı · 如何在ON冲突更新中使用CTE中的值 12 月前 |
|
|
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |