在Oracle中仅按名称获取子字符串
我有以下数据:在Oracle中仅按名称获取子字符串,oracle,substring,Oracle,Substring,我有以下数据: FlujodeTrabajoGrado22 SONIA XIMENA PARRA ARDILA U00053542 FlujodeTrabajoGrado22 ANDRES BECERRA DUARTE 1098456123 等等 我使用此选项选择: SELECT SUBSTR('FlujodeTrabajoGrado22 SONIA XIMENA PARRA ARDILA U00053542', INSTR('FlujodeTrabajoGrad
FlujodeTrabajoGrado22 SONIA XIMENA PARRA ARDILA U00053542
FlujodeTrabajoGrado22 ANDRES BECERRA DUARTE 1098456123
等等
我使用此选项选择:
SELECT SUBSTR('FlujodeTrabajoGrado22 SONIA XIMENA PARRA ARDILA U00053542',
INSTR('FlujodeTrabajoGrado22 SONIA XIMENA PARRA ARDILA U00053542',
' ',1)
)
FROM DUAL
但我得到的是:
SONIA XIMENA PARRA ARDILA U00053542
结果必须是:
SONIA XIMENA PARRA ARDILA
ANDRES BECERRA DUARTE
你还需要删除句子的结尾 如果您想要substr-only方法,可以使用
SELECT SUBSTR('FlujodeTrabajoGrado22 SONIA XIMENA PARRA ARDILA U00053542',
INSTR('FlujodeTrabajoGrado22 SONIA XIMENA PARRA ARDILA U00053542',' ',-1) + 1)
FROM dual
你还需要删除句子的结尾 如果您想要substr-only方法,可以使用
SELECT SUBSTR('FlujodeTrabajoGrado22 SONIA XIMENA PARRA ARDILA U00053542',
INSTR('FlujodeTrabajoGrado22 SONIA XIMENA PARRA ARDILA U00053542',' ',-1) + 1)
FROM dual
您可以利用:
如果您不确定单词之间有多少空格(或制表符),请使用正则表达式模式^\w++(.*)++\w++$
:
SELECT regexp_replace('FlujodeTrabajoGrado22 SONIA XIMENA PARRA ARDILA U00053542',
'^\w+ +(.*) +\w+$',
'\1')
FROM DUAL;
您可以利用:
如果您不确定单词之间有多少空格(或制表符),请使用正则表达式模式^\w++(.*)++\w++$
:
SELECT regexp_replace('FlujodeTrabajoGrado22 SONIA XIMENA PARRA ARDILA U00053542',
'^\w+ +(.*) +\w+$',
'\1')
FROM DUAL;
像这样的。第一个
instr()。然后,第二个instr()
,以及第三个参数-1
,找到从字符串末尾开始的空间计数的“第一次”出现(减号表示它),我们在算术计算中使用它来指示所需子字符串的长度
这假设您要检索第一个和最后一个空格字符之间的所有内容(不包括它们)
像这样的。第一个instr()。然后,第二个instr()
,以及第三个参数-1
,找到从字符串末尾开始的空间计数的“第一次”出现(减号表示它),我们在算术计算中使用它来指示所需子字符串的长度
这假设您要检索第一个和最后一个空格字符之间的所有内容(不包括它们)
从您发布的输入和查询中,您无法获得所显示的内容。子字符串还将包括前导空格!从您发布的输入和查询中,您无法获得所显示的内容。子字符串还将包括前导空格!