id code price
1 100,101, 50
2 102,103, 20
3 104, 30
我现在想要
id code price
1 100 50
1 101 50
2 102 20
2 103 20
3 104 30
谢谢!
with t as (
select 1 id, '100,101,' code, 50 price from dual union
select 2, '102,103,', 20 from dual union
select 3, '104,', 30 from dual
)
select t.id,rtrim(regexp_substr(code,'[0-9]+,',1,rn),',') code2
from t,(select rownum rn from dual connect by level < 100) r
where regexp_substr(code,'[0-9]+,',1,rn) is not null
order by t.id,code2
-- 其中level < 100这里的100是取你code字段的最大分割次数,如果超出100你可以把这个值上调。
--手上没有oracle环境,随便写了下。
with t as (
select 1 id, '100,101,' code, 50 price from dual union
select 2, '102,103,', 20 from dual union
select 3, '104,', 30 from dual
)
select t.id,regexp_substr(code,'[^,]+',1,l)
from t,(select level l from dual connect by level < 10) r --这里的10表示最多有10-1=9个逗号分隔。如果不过自行改正。
where length(code)-length(replace(code,',',''))+1>r.l
order by t.id,1;
--XML DECLARE @one Table( CompanyID INT, CompanyCodes VARCHAR(100) ) insert into @one select 1,'1|2' union all select 2,'1|2|3' union all select 3,'1|2|3|4' ...union all se
Ø 一行变多行过程: // 一行拆分多行的操作:主要是拆分subcat不为空的记录,sql语句如下: insert into table today_cust_behavior_single select msisdn ,flow_start,flow_end,kk as subcat from today_cust_...
一行变多行 select a.classid, substring_index(substring_index(a.classname, ',', b.help_topic_id + 1), ',', -1) as spitId from classroom a join mysql.help_topic b on b.help_topic_id < (length(a....
hive一行变多行及多行变一行 场景 name alias zhaoqiansun abc def ghi 处理数据时需要将上表处理成为下面的形式: name alias zhaoqiansun abc zhaoqiansun def zhaoqiansun ghi 办法 ...
SELECT REGEXP_SUBSTR('1,2,3,4,5,6,7,8,9', '[^,]+', 1, ROWNUM) FROM DUAL CONNECT BY ROWNUM <= LENGTH('1,2,3,4,5,6,7,8,9') - LENGTH(REPLACE('1,2,3,4,5,6,7,8,9', ',', '')) + 1
Excel 如何把一行变成对应的多行,或者多行变成对应的一行,或者多行变成另外一种多行 工具支持Excel:一行变成多行,多行转成一行,多行转多行,列变成行,行变成列,列内容合到一个单元格、一维转二维、二维转一...
1、多行变一行 方法一: shift + alt + 鼠标左键拖(拖动光标到要将多行变一行的所有行行首)+ Backspace + 空格 一系列操作就可以实现多行变一行的操作 方法二: alt + z 就可以实现多变一行,然而是对操作文件所有...
如果使用split的话,无法将解析出来的元素和原有字段一起观察,所以引出了explode这个udtf,这个函数配合split函数可以将一行数据变成多行数据,例如: select explode(split('123,456,789',',')) 结果: 123 ...
简单点,表结构; 实现效果: sql: SELECT a.id, SUBSTRING_INDEX( SUBSTRING_INDEX( a.citys, ',', help_topic_id + 1 ), ',' ,- 1 ) AS city FROM mysql.help_topic, ...WHERE...
原数据如下: +--------------+------------+----------+ |from_city_name|to_city_name|search_num| +--------------+------------+----------+ | 无锡市| 漯河市| 3| | 南部县| 库尔勒市|...
1、正则表达式 SELECT distinct T.MY_ID, REGEXP_SUBSTR(T.MY_VALUE, '[^,]', 1, LEVEL) --返回第level次匹配的结果 FROM MY_CHANGE T CONNECT BY LEVEL ORDER BY T.MY_ID; ...select my_
资料来源:... if not object_id('Tab') is null drop table Tab Go Create table Tab([Col1] int,[COl2] nvarchar(5)) Insert Tab select 1,N'a,b,c' union all select 2,N'd,e
基本语法: sed"s/要匹配的字符串/要替换成的字符串/g"test.gson 语法解释:sed是按行处理文本数据的,每次处理一行数据后,都会在行尾自动添加trailing newline,...(多行)替换/删除所有换行符(变一行): ...
实例表: postgres=# \d book Table "public.book" Column | Type | Modifiers --------+-------------------+--------------
工作中经常遇到这样一个场景,希望将某个字断查询出得结果组合成为一个字符串,用逗号分割(或者分号),通过PG中的函数该如何实现? 实例表: 想要的结果: 方法一:string_agg(字段名,分隔符) select id,string...
Spark scala 一行转多行 原始数据↓ A a1,a2,a3 B a4,a5 C a3,a5 D a1,a2,a3,a4 E a1 逻辑代码↓ val data = source .map(s => { val tmp1 = arr(0) val tmp2 = arr(1).split(",") (tmp1, tmp2) }) .map(s...
dataframe也有按某列中按分隔符转成多行的函数,不过dataframe比rdd所需资源更多,所以此处先些rdd的按某列拆分转为多行 dataframe的详见...
需求说明 表t1 表t2 目标效果 建表语句 create table t1( id int PRIMARY key auto_increment COMMENT ‘主键’, type VARCHAR(8) COMMENT ‘类型’ ); insert INTO t1(type) values(‘1,2,5’),(‘1,2’),(‘5’);...
import d0708.udtf import org.apache.flink.streaming.api.scala._ import org.apache.flink.table.api.TableEnvironment import org.apache.flink.types.Row object b { def main(args:Array[String]):Unit={ ...
Presto_sql:一行转多行和多行转一行一行转多行多行转一行 一行转多行 table1: name cat Mary a,b Cindy a,f Zary c,g select name,split_cat FROM table1 CROSS JOIN UNNEST(SPLIT(cat,',')) AS t ...
项目开发中有这样的需求,原始数据如下: +--------+-----------+ ...根据指定的标识符进行切分,然后一行转多行,以新列进行展示: val result= df.withColumn("newMessage",functions.explode(fun
公众号后台回复“图书“,了解更多号主新书内容作者:黄伟呢来源:数据分析与统计学之美粉丝提问今天粉丝提了下面这样一个问题,其中一个是"一行拆多行",另外一个是"多行...
前两天有人提了下面这样一个问题,其中一个是“一行拆多行”(将单行一列中的多个值分成多行单值),另外一个是“多行并一行”(将多行单值合并为单行一列中的多个值)。这是在对Excel数据表格进行数据处理时经常...
REGEXP_SUBSTR函数格式如下: REGEXP_SUBSTR(source_char, pattern [, position [, occurrence [, match_param [, subexpr ...
scala> movies.show(truncate = false) +-------+---------+-----------------------+ |movieId|movieName|genre | +-------+---------+-----------------------+ |1 ...
[oracle@scaqan03dv0101 wgz]$ cat a.txt aaa bbb 现在a.txt里面有两行,使用...再使用下面的命令将一行替换为多行 :1,$s/ccc/ddd\reee/g \r在替换时表示换行 [oracle@scaqan03dv0101 wgz]$ cat a.txt ddd eee ...
SQL方法,将一列中的多行变为一行,将按一定条件筛查出来的多行数据变为一行数据
原始数据如下: gid score a1 90 80 79 80 a2 79 89 45 60 a3 57 56 89 75 ...from pyspark.sql.functions import udf, col from pyspark.sql.types import MapType, IntegerType, StringType ...
在编写AO应用实例时遇到要一行变多行的问题。 问题描述:现有表一,要求执行SQL后变成表二形式 表一 表二 由于sql中没有提供像C#那样的split方法,所以遍查资料,终于找到一个...
hive使用技巧(五)—— 一行转多行,多行转一行