Saltar al contenido

¿Cómo seleccionar una subcadena en Oracle SQL hasta un carácter específico?

Ya no tienes que investigar más por internet ya que llegaste al espacio correcto, poseemos la respuesta que buscas pero sin complicarte.

Solución:

El uso de una combinación de SUBSTR, INSTR y NVL (para cadenas sin guión bajo) devolverá lo que desea:

SELECT NVL(SUBSTR('ABC_blah', 0, INSTR('ABC_blah', '_')-1), 'ABC_blah') AS output
  FROM DUAL

Resultado:

output
------
ABC

Utilizar:

SELECT NVL(SUBSTR(t.column, 0, INSTR(t.column, '_')-1), t.column) AS output
  FROM YOUR_TABLE t

Referencia:

  • SUBSTR
  • INSTRUCCIONES

Apéndice

Si usa Oracle10g+, puede usar expresiones regulares a través de REGEXP_SUBSTR.

Esto se puede hacer usando REGEXP_SUBSTR fácilmente.

Por favor use

REGEXP_SUBSTR('STRING_EXAMPLE','[^_]+',1,1) 

donde STRING_EXAMPLE es tuyo string.

Tratar:

SELECT 
REGEXP_SUBSTR('STRING_EXAMPLE','[^_]+',1,1) 
from dual

Resolverá tu problema.

Debe obtener la posición del primer guión bajo (usando INSTR) y luego obtener la parte del string del 1er carácter a (pos-1) usando substr.

  1  select 'ABC_blahblahblah' test_string,
  2         instr('ABC_blahblahblah','_',1,1) position_underscore,
  3         substr('ABC_blahblahblah',1,instr('ABC_blahblahblah','_',1,1)-1) result
  4*   from dual
SQL> /

TEST_STRING      POSITION_UNDERSCORE RES
---------------- ------------------  ---
ABC_blahblahblah                  4  ABC

Documentación de instrucciones

Documentación de suscripción

Si piensas que ha sido provechoso nuestro artículo, sería de mucha ayuda si lo compartes con más entusiastas de la programación así contrubuyes a difundir nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *