web-dev-qa-db-fra.com

Oracle obtient une sous-chaîne avant un espace

J'ai une chaîne avec un espace entre les deux et j'ai besoin d'obtenir la première chaîne (il peut s'agir d'un nombre) avant l'espace.

 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')

Le résultat devrait être:

123642134
8
Vivek
Substr (quarter_cd, 1,instr(quarter_cd,' ') - 1)

Devrait faire ça.

19
DazzaL
SELECT Rtrim(Substr('123642134  10',1,Instr('123642134  10',' '))) AS quarter_cd FROM dual;

Utilisations de la fonction de chaîne utilisée dans la requête supérieure

  • Instr () - pour obtenir la position de tout caractère ou espace de la chaîne donnée.
  • Substr () - pour obtenir une sous-chaîne d'une chaîne donnée.
  • Rtrim () - pour supprimer les espaces du côté droit.
0
Bruno