结合使用数学SUBSTR、INSTR 和REVERSE 来实现这一目标。
文字字符串:
SELECT SUBSTR('8030/N/25.00,8017/N/25.00,8089/N/50.00',1,4) AS a,
SUBSTR(substr('8030/N/25.00,8017/N/25.00,8089/N/50.00', - instr(reverse('8030/N/25.00,8017/N/25.00,8089/N/50.00'), '/N/',1,2) - 6),1,4) AS b,
SUBSTR(substr('8030/N/25.00,8017/N/25.00,8089/N/50.00', - instr(reverse('8030/N/25.00,8017/N/25.00,8089/N/50.00'), '/N/',1,3) - 6),1,4) AS c,
(SUBSTR('8030/N/25.00,8017/N/25.00,8089/N/50.00',1,4) +
SUBSTR(substr('8030/N/25.00,8017/N/25.00,8089/N/50.00', - instr(reverse('8030/N/25.00,8017/N/25.00,8089/N/50.00'), '/N/',1,2) - 6),1,4) +
SUBSTR(substr('8030/N/25.00,8017/N/25.00,8089/N/50.00', - instr(reverse('8030/N/25.00,8017/N/25.00,8089/N/50.00'), '/N/',1,3) - 6),1,4)) AS total
FROM dual
使用字段名:
SELECT SUBSTR(YOURFIELD,1,4) AS a,
SUBSTR(substr(YOURFIELD, - instr(reverse(YOURFIELD), '/N/',1,2) - 6),1,4) AS b,
SUBSTR(substr(YOURFIELD, - instr(reverse(YOURFIELD), '/N/',1,3) - 6),1,4) AS c,
(SUBSTR(YOURFIELD,1,4) +
SUBSTR(substr(YOURFIELD, - instr(reverse(YOURFIELD), '/N/',1,2) - 6),1,4) +
SUBSTR(substr(YOURFIELD, - instr(reverse(YOURFIELD), '/N/',1,3) - 6),1,4)) AS total
FROM YOURTABLE
只是总数:
SELECT (SUBSTR(YOURFIELD,1,4) +
SUBSTR(substr(YOURFIELD, - instr(reverse(YOURFIELD), '/N/',1,2) - 6),1,4) +
SUBSTR(substr(YOURFIELD, - instr(reverse(YOURFIELD), '/N/',1,3) - 6),1,4)) AS total
FROM YOURTABLE