Modifier le typage d’un champ géométrique avec PostgreSQL

 

Le typage d’un champ géométrique dans PostgreSQL permet d’inclure le type de géométrie souhaité (il est également possible de l’inclure en tant que contrainte).

Mais un typage initial trop restrictif (multi-polygones alors que l’on souhaite également inclure des polygones) peut parfois poser problème lors de l’insertion de données.

Exemple :

the_geom(Multipolygon,2154)

Il est alors nécessaire de modifier le typage du champ géométrique comme suit :

ALTER TABLE my_table ALTER COLUMN the_geom TYPE geometry(Geometry,2154);

Source :

Publicités

Exploser un champs en lignes selon un délimitateur avec PostGreSQL

On utilisera la fonction unnest() qui permet normalement de récupérer les valeurs d’un array. Si le champs contient des chaînes de caractères, on combinera avec la fonction string_to_array() :

SELECT unnest(table_name.field_name) AS alias
FROM schema_name.table_name ;

Sources :

Remplacer une partie d’une chaîne de caractères dans une table avec SQL

L’objectif est de remplacer une partie d’une chaîne de caractères par une autre dans un champs.

On utilise la fonction REPLACE() qui comporte trois paramètres :

  • chaîne en entrée (ici, le nom du champs),
  • texte à remplacer,
  • texte qui sert de remplacement.

Ce qui donne la requête SQL suivante :

UPDATE schema.tablename
SET fieldname = REPLACE(fieldname, ‘xxx’, ‘yyy’)

Source :

Trouver les enregistrements n’existant pas dans une table en SQL

L’objectif est de trouver – entre deux tables possédants un ou plusieurs champs identiques – les enregistrements n’existant pas dans l’une des deux.

Méthode 1 : avec une sous-requête (subquery)

SELECT *
FROM table_1
WHERE NOT EXISTS (
SELECT *
FROM table_2
WHERE table_1 .id = table_2.id
);

Méthode 2 : avec l’opérateur NOT IN

SELECT *
FROM table_1
WHERE id NOT IN ( SELECT id FROM table_2);

Source :