select REGEXP_REPLACE(REGEXP_REPLACE('HEADER|N1000|E1001|N1002|E1003|N1004|N1005', '.*?E(\d+)', '\1,'), ',?\.*$', '') from dual
3 Réponses :
en fonction des modifications apportées à la question, la réponse originale n'est pas valide. Au lieu de cela, la solution est considérablement plus complexe, à l'aide d'une requête hiérarchique pour extraire tous les nombres de la chaîne, puis sortie (pour les nouveaux données d'échantillonnage): p> pour sélectionner Seuls les nombres commençant par sortie: p> listagg code> pour remettre une liste de numéros extraits de chaque chaîne. Pour extraire tous les chiffres, nous utilisons cette requête: p> E code>, nous modifions la requête pour remplacer le [fr] code> dans le regexp_substr code> expressions avec juste E code > c.-à-d. p> 1001,1003
Les commentaires ne sont pas pour une discussion prolongée ni des sessions de débogage; Cette conversation a été Archivé en chat .
@nick j'ai ajouté les nouveaux ensembles de données .Pour quelle requête doit satisfaire
@Codygray OP n'a pas assez de réputation pour visiter une salle de discussion ... Je suppose que c'est pourquoi l'option "Voulez-vous déplacer cette discussion à la discussion" n'a jamais été offert.
@Amarenderreddyjali J'ai mis à jour ma réponse. Il devrait être beaucoup plus robuste maintenant (et fonctionne pour tous les exemples que vous avez donnés)
@nick merci mais je pense utiliser votre réponse précédente et '' 'Sélectionnez * à partir de (Sélectionnez Regexp_replace (Regexp_replace (' En-tête | N1000 | E1001 | N1002 | E1005 | N1004 | N1005 | E1005 | E \ d +) ',' \ 1, '),',? \ |. *. * '$', '') comme maman de double) où maman aime '% | e%' ''
@ Nick pouvez-vous répondre à ce Stackoverflow.com/questions/58410091/...
@NICK Comment pouvons-nous regrouper 17h hier à 17h aujourd'hui des records à la date d'aujourd'hui Stackoverflow.com/q/58497919/12212199 ? SEM = 2
Je ne sais pas quel DBMS vous utilisez, mais voici une façon de le faire dans Postgres: SQL FIDDLE P> P>
Autant que j'ai compris la question, vous souhaitez extraire des sous-chaînes à partir de N à partir de la chaîne, vous pouvez essayer de suivre (puis vous pouvez fusionner la sortie séparée par des virgules si nécessaire) P>
sortie: p>
1000
1002
1004
1005 p>
blockQuote> Sélectionnez Remplacer (valeur, 'n', '')
de string_split ('Header | N1000 | E1001 | N1002 | E1003 | N1004 | N1005 |', '|')
où valeur comme 'n%' code> p>