导入表T1某字段截取的子字符串到另一张表T2

songwmeta / 2023-07-29 / 原文

第1章、字符串定位和截取

-- 匹配字符的位置

-- 从左往右第一次出现字符 .log 的位置
SELECT INSTR('m/mc/kh.log','.log') FROM T1:
-- 返回 8

-- 从右往左第一次出现 / 的位置
SELECT INSTR('m/mc/kh.log','/',-1,1) FROM T1:
-- 返回 5

-- 字符串截取,截取从3开始的6位字符
SELECT SUBSTR('m/mc/kh.log',3,6) FROM T1:
-- 返回 mc/kh.

-- 截取字段 FD,从第一次出现/开始,到第一次出现.log的字符串
SELECT SUBSTR(FD,INSTR(FD,'/',-1,1)+1,INSTR(FD,'/',-1,(INSTR(FD,'.log')-INSTR(FD,'/',-1,1)-1))) FROM T1;

第二章、导入表T1某字段的子字符串到另一张表T2

INSERT INTO T2 (UUID, FD2) SELECT UUID,SUBSTR(FD,INSTR(FD,'/',-1,1),INSTR(FD,'/',-1,(INSTR(FD,'.log')-INSTR(FD,'/',-1,1)))) FROM T1;

T1:

UUID FD
1
m/mc/kh.log
2
m/mc/khdd.log

执行sql后:

T2:

UUID FD
1
kh
2
khdd