在oracle sql中解析字符串

在oracle sql中解析字符串,sql,oracle,Sql,Oracle,我想在SQL中解析一个字符串,但是,我不知道如何去做 这是我的密码: SELECT distinct sku, A_CLUSTER_DESC FROM TOOL_SAS_DATA WHERE sku in (1099895, 1099896, 1000960, 1000960, 1000898 ); 我的输出是: || sku || A_Cluster_desc || 1 ||1099895|| 'GG SAS AP_1234 A'|| 2 ||1

我想在SQL中解析一个字符串,但是,我不知道如何去做

这是我的密码:

 SELECT distinct sku, A_CLUSTER_DESC 
 FROM TOOL_SAS_DATA 
 WHERE sku in (1099895,
  1099896,
  1000960,
  1000960,
  1000898
  );
我的输出是:

  ||  sku  || A_Cluster_desc   ||

1 ||1099895|| 'GG SAS AP_1234 A'||

2 ||1099896|| 'GG SAS AP_1113 B'||
等等

我只想在
A_Cluster\u desc下输出
它说的是
AP_1234
AP_1113
,只是排除了它周围的一切

编辑:


抱歉,如果不清楚,我只想输出AP_1234或AP_###

仅用于
A_CLUSTER\u DESC
部分,使用:

select regexp_substr(A_CLUSTER_DESC, '(.*?GG SAS )(.*?) ',1,1,'',2) from TOOL_SAS_DATA;

仅针对
A\u CLUSTER\u DESC
零件,使用:

select regexp_substr(A_CLUSTER_DESC, '(.*?GG SAS )(.*?) ',1,1,'',2) from TOOL_SAS_DATA;

它是否总是像AP_1234一样,包括前缀和后缀?它总是说AP_,后面有4个数字。您需要ues
regexp_substr()
和正则表达式它是否总是与AP_1234相同的模式,包括前缀和后缀?它总是说AP_,后面有4个数字。您需要ues
regexp_substr()
和正则表达式