我有一个包含一系列字符串的列,包括数字作为字符串(在你们其中一个人提出它之前,ain&t; t更改的类型)
TableA:
ColA
-----
''
(NULL)
'5 Yippee'
'6 Yeps'
'7'
'8 Awesome'
我正在尝试根据数字输出。最初,假设此列中的所有数字后面都有一个空格。事实证明,他们不是。
到目前为止我已经
了FOR x in
(SELECT * FROM FUNCTION_THAT_OUTPUTS_COLA(var1,var2)) -- ColA, not Cola
LOOP
IF ColA is not null
IF instr(x.ColA,' ') >0 -- There's a space in here
THEN
v_output.Col:= SUBSTR(x.ColA,1,INSTR(x.ColA,' '));
PIPE ROW(v_output);
ELSE
v_output:= x.ColA;
PIPE ROW(v_ouptut);
END IF;
END IF;
不幸的是,虽然它剥离了null,但它也剥离了' 7'
这里的理想输出是:
'5'
'6'
'7'
'8'
任何人都可以帮助我,我的思绪完全是空白吗?
编辑:
发现它,这是我在这里转置它时修复的拼写错误
谢谢你们
答案 0 :(得分:3)
如何使用正则表达式(regexp_substr)
select result from (
select regexp_substr(ColA, '[0-9]+',1,1) as result from tableA
) where result is not null
<强>输出强>:
5
6
7
8