Oracle在空格之前获取子字符串

Viv*_*vek 8 regex sql oracle

我有一个中间有空格的字符串,我需要在空格之前得到第一个字符串(可以是数字).

 WITH test_data AS (
  SELECT '123642134  10' AS quarter_cd FROM dual UNION ALL --VALID
)

 select *
  from test_data
 where regexp_like(quarter_cd, '', 'c')
Run Code Online (Sandbox Code Playgroud)

输出应该是:

123642134
Run Code Online (Sandbox Code Playgroud)

Daz*_*zaL 23

Substr (quarter_cd, 1,instr(quarter_cd,' ') - 1)
Run Code Online (Sandbox Code Playgroud)

应该这样做.

  • @vivek你没有指明你需要它作为正则表达式.为什么你要正则表达..家庭作业?Regexp_substr(quarter_cd,'^ [^] +')应该这样做. (2认同)
  • @Vivek ok np.^是字符串的开头,但在方括号内^表示"不".所以它说`^`从字符串的开头开始,`[^]`匹配NOT空格.`+`表示1次或更多次(因此匹配1个或更多NON空格).如果你只想匹配数字,你可以改为'^ [0-9] +' (2认同)