Pages: 1
- Sujet précédent - PGSQL: select ttes les lignes d'une table avec valeurs NULL ou vides - Sujet suivant
#1 Thu 06 April 2023 10:39
- SylvaDEES
- Participant actif
- Date d'inscription: 12 Jul 2012
- Messages: 86
PGSQL: select ttes les lignes d'une table avec valeurs NULL ou vides
Bonjour,
je tente de trouver une requête ( un simple SELECT * FROM.... WHERE )
permettant de sélectionner toutes les lignes d'une table comportant des valeurs NULL ou vides.
Ce dernière semble simple, mais je ne parviens pas à trouver la rédaction adaptée
dans la littérature sql existante.
Merci d'avance pour vos contributions.
Géomatiquement.
Hors ligne
#2 Thu 06 April 2023 11:32
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 1008
Re: PGSQL: select ttes les lignes d'une table avec valeurs NULL ou vides
toutes les lignes d'une table comportant des valeurs NULL ou vides.
Dans un champ particulier ? Dans plusieurs champs ?
Pour un champ particulier, voici la requête :
Code:
SELECT * FROM MaTable WHERE MonChamp IS NULL OR MonChamp = ''
Sylvain M.
Hors ligne
#3 Wed 23 July 2025 13:36
- SylvaDEES
- Participant actif
- Date d'inscription: 12 Jul 2012
- Messages: 86
Re: PGSQL: select ttes les lignes d'une table avec valeurs NULL ou vides
Bonjour,
merci pour votre réponse et désolé pour mon retour plus que tardif.
Je reprécise ma recherche : je tente de trouver une requête ( ou une fonction, procédure...)
permettant de lister toutes les valeurs NULL ou vides contenues dans une table,
SANS distinction de champs/ colonne
Ce dernière semble simple, mais je ne parviens pas à trouver la rédaction adaptée
dans la littérature sql existante.
Merci d'avance pour vos contributions.
Géomatiquement.
Dernière modification par SylvaDEES (Wed 23 July 2025 15:24)
Hors ligne
#4 Wed 23 July 2025 15:32
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1204
Re: PGSQL: select ttes les lignes d'une table avec valeurs NULL ou vides
Il n'y a pas de moyens tout fait pour réaliser ce que vous voulez. Vous pouvez néanmoins construire la requête pour arriver à ce que vous voulez avec la requête suivante :
Code:
SELECT 'SELECT * FROM mon_schema.ma_table WHERE ' || string_agg( quote_ident(column_name) || ' is null or trim(' || quote_ident(column_name) || ') = ' || quote_literal(''), ' or ') FROM information_schema.columns WHERE table_schema = 'mon_schema' AND table_name = 'ma_table' and data_type ~* '(character|text)' ;
Vous pouvez ensuite executer la requête générée.
Dernière modification par tumasgiu (Wed 23 July 2025 15:33)
Hors ligne
#5 Tue 29 July 2025 13:58
- SylvaDEES
- Participant actif
- Date d'inscription: 12 Jul 2012
- Messages: 86
Re: PGSQL: select ttes les lignes d'une table avec valeurs NULL ou vides
Bonjour,
merci pour votre réponse et votre contribution, c'est en effet un bon moyen d'automatiser la rédaction de la requête.
Ma table stocke des centaines de milliers de points de relevés topographiques sur lesquels je dois automatiser un maximum de contrôles qualité de la donnée : je vais créer ou ajouter une procédure stockée sur le schémas concerné.
Question de béotien en programmation sql-psql N'y a-t-il pas moyen d'obtenir le même résultat avec un programme- fonction psql à base de curseurs ( open > loop > fetch > end loop > close > End ) ?
Géomatiquement.
Dernière modification par SylvaDEES (Tue 29 July 2025 14:18)
Hors ligne
#6 Tue 29 July 2025 14:11
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1204
Re: PGSQL: select ttes les lignes d'une table avec valeurs NULL ou vides
C'est tout à fait possible.
Maintenant si votre souçi c'est d'imposer une qualité à votre donnée comme par exemple interdire les champs NULL ou vide, les contraintes et triggers sont fait exactement pour çà.
Dernière modification par tumasgiu (Tue 29 July 2025 14:13)
Hors ligne
#7 Tue 29 July 2025 14:24
- SylvaDEES
- Participant actif
- Date d'inscription: 12 Jul 2012
- Messages: 86
Re: PGSQL: select ttes les lignes d'une table avec valeurs NULL ou vides
c'est bien noté, je vais évaluer la pertinence de la mise en oeuvre d'un trigger ou d'une contrainte sur cette table.
Je pencherais plus pour un Trigger car le contrôle qualité se fait, pour le moment, en post - intégration de données pour retour de non conformité
auprès des prestataires ( schémas et table postgressql distante du prestataire, en base à base via un foreign Data Wrapper ).
Merci pour vos précieux conseils.
Hors ligne
Pages: 1
- Sujet précédent - PGSQL: select ttes les lignes d'une table avec valeurs NULL ou vides - Sujet suivant