thx man, juste ce dont j'avais besoin! Ravi de vous aider. Assurez-vous que vous upvote/accepter les réponses qui vous aideront à sont regexes disponible dans 9i? Je pensais qu'ils étaient 10g de plus? J'ai totalement raté le oracle9i tag. Je suppose que la Regex est disponible uniquement à partir de 10 sur. Pour le plaisir d'avoir une expression régulière exemple, voici un moyen avec une regex: select regexp_substr('john.abc_1234', '[^_]*') from dual; Il suppose que vous voulez garder tout en place jusqu'à ce que le premier caractère de soulignement.
Vous pouvez utiliser cette monstruosité, lorsque vous n'êtes pas sûr si toutes les valeurs contiennent le caractère que vous voulez couper votre chaîne.
SELECT(CASEWHEN INSTR(field,'_')>0THEN substr(field,1, instr(field,'_')-1)ELSE field
END)AS field
FROM
dual
Vous pouvez utiliser
SUBSTR
etINSTR
:Mise à jour
En outre, si vous exécutez à partir d'Oracle 10g sur, vous pouvez prendre la Regex chemin, ce qui serait plus puissamment gérer les exceptions.
Voici quelques liens sur la façon de le faire dans Oracle:
Ravi de vous aider. Assurez-vous que vous upvote/accepter les réponses qui vous aideront à
sont regexes disponible dans 9i? Je pensais qu'ils étaient 10g de plus?
J'ai totalement raté le oracle9i tag. Je suppose que la Regex est disponible uniquement à partir de 10 sur.
Pour le plaisir d'avoir une expression régulière exemple, voici un moyen avec une regex:
select regexp_substr('john.abc_1234', '[^_]*') from dual;
Il suppose que vous voulez garder tout en place jusqu'à ce que le premier caractère de soulignement.OriginalL'auteur Adrian Carneiro
Vous pouvez utiliser cette monstruosité, lorsque vous n'êtes pas sûr si toutes les valeurs contiennent le caractère que vous voulez couper votre chaîne.
OriginalL'auteur sparklos
Ce mec tout compris!
http://programcsharp.com/blog/post/strip-non-numeric-characters-from-a-string-in-sql-server
OriginalL'auteur kmeow1024