Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL > Requêtes
Requêtes Forum d'entraide sur les requêtes SQL spécifiques à PostgreSQL, les triggers, les vues, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/04/2011, 09h18   #1
Invité régulier
 
Inscription : mars 2011
Messages : 23
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 23
Points : 7
Points : 7
Par défaut requête Sql d'extraction

Bonjour,

Mon problème est le suivant:
Dans une table j'ai une colonne ou il y a stocké une information contenant les numéro de compte séparé par un espace. Exemple de colonne [1 25 6 8 45 98]
Sur ce champ là je veux vérifier si par exemple dans cette colonne il y a le compte 8... et c'est là ou je bloque, j'ai essayé d'utiliser LIKE '8%' mais parfois j'ai des comptes 85.. j'aimerai un peu d'aide s'il vous plait.

Merci.
Cissine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 12h20   #2
Membre confirmé
 
Homme
Inscription : janvier 2006
Messages : 227
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Corse (Corse)

Informations forums :
Inscription : janvier 2006
Messages : 227
Points : 239
Points : 239
bonjour tu peux utiliser l' operateur "~"
(n'oublie pas les espaces qui entourent le 8)
xavier-Pierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 12h52   #3
Modérateur
 
Inscription : octobre 2008
Messages : 1 505
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 1 505
Points : 2 034
Points : 2 034
La fonction regexp_split_to_table() répond assez bien à ce problème car elle présente les nombres comme si c'étaient les lignes d'une table.
Par exemple:
Code :
1
2
3
4
5
6
7
8
test=> SELECT regexp_split_to_table('4 3  25 12', E'\\s+');
 regexp_split_to_table 
-----------------------
 4
 3
 25
 12
(4 rows)
Donc pour tester la présence d'une valeur particulière:

Code :
1
2
3
4
5
test=> SELECT 1 WHERE '25' IN (SELECT *  FROM regexp_split_to_table('4 3  25 12', E'\\s+'));
 ?COLUMN? 
----------
        1
(1 row)
estofilo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h06.


 
 
 
 
Partenaires

Hébergement Web