0
votes

PostgreSQL - extraire la chaîne avant de finir le délimiteur

J'ai une colonne de données qui ressemble à ceci:

102
58
58
57
106


1 commentaires

J'ai besoin d'extraire le caractère .. / code> Les résultats de votre résultat souhaité, ne sont pas des caractères. Précisez s'il vous plaît. Définissez ce que vous envisagez de séparer les personnages à part le mentionné «,».


4 Réponses :


0
votes

ne peut pas promettre que c'est la meilleure façon de le faire, mais c'est un moyen de le faire: XXX

Je suis allé un peu de surenche sur les CTES, mais c'était pour exposer la logique un peu mieux.


0 commentaires

0
votes

Avec un CTE qui supprime tout après la dernière virgule, puis scindre le reste dans un tableau: xxx pré>

voir le Demo .
Résultats: P>

| result |
| ------ |
| 102    |
| 58     |
| 58     |
| 57     |
| 106    |


0 commentaires

0
votes

peut être fait avec une expression régulière dans < Code> Substring () . Si vous voulez:
la chaîne la plus longue de seuls chiffres avant la dernière virgule : xxx

ou vous pouvez vouloir:
la chaîne avant la dernière virgule (',') qui est délimitée au début soit par un côlon (':') ou le début de la chaîne.
Pourrait être une autre regexp: xxx

ou ceci: xxx

plus verbeux mais typiquement beaucoup plus rapide qu'un régularisé (coûteux) expression.

db <> violon


0 commentaires

0
votes

Le suivant traite la chaîne source en tant que "réseau de tableaux". Il semble que chaque élément de données puisse être défini comme s (x, y) et la chaîne globale comme S1: S2: ... Sn. La tâche devient alors d'extraire x de sn. xxx

ce qui précède s'étend S (x, y) à S (a, b, ..., x, y) la tâche reste à extraire x de Sn. Si tel est le cas, toutes les sous-chaînes d'origine S sont formatées S (x, y), alors le dernier SELECT réduit à SELECT SN SN [1]


0 commentaires