banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GeoDataDays 2025

#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é.  big_smile

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

 

Pied de page des forums

Copyright Association GeoRezo