PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 29/06/2011 10:08:51

damalaan
Membre

Fonction substring

Bonjour,

j'ai créé la vue vue

CREATE OR REPLACE VIEW view_moy_labo AS 
 SELECT view_ecart_type_tournee.trn_esp, to_number("substring"(to_char(view_ecart_type_tournee.trn_date_prel, 'FM999999'::text), 1, 4), '9999'::text) AS mois, round(avg(view_ecart_type_tournee.stddev), 2) AS et
   FROM view_ecart_type_tournee
  GROUP BY to_number("substring"(to_char(view_ecart_type_tournee.trn_date_prel, 'FM999999'::text), 1, 4), '9999'::text), view_ecart_type_tournee.trn_esp
  ORDER BY view_ecart_type_tournee.trn_esp, to_number("substring"(to_char(view_ecart_type_tournee.trn_date_prel, 'FM999999'::text), 1, 4), '9999'::text);

la fonction substring se retrouve entre guillemet et j'aimerai bien savoir pourquoi!

autre question dans la question : n'y a t il pas un autre moyen que d'utiliser substring pour récupérer une partie d'un nombre pour faire un regroupement par exemple:
110401 --> 1104

merci

Dernière modification par damalaan (29/06/2011 10:09:10)

Hors ligne

#2 29/06/2011 15:04:51

gleu
Administrateur

Re : Fonction substring

Toutes les fonctions sur les chaînes de caractères (http://docs.postgresql.fr/9.0/functions-string.html) et sur les expressions rationnelles (http://docs.postgresql.fr/9.0/functions-matching.html) permettent de récupérer une partie d'un nombre ou d'une chaîne pour faire un regroupement.

Pour la mise entre guillemets, vous êtes sous quelle version de PostgreSQL ?


Guillaume.

Hors ligne

#3 29/06/2011 16:24:16

damalaan
Membre

Re : Fonction substring

je suis en version 9.0, avec pgAdminIII

ce qui est étrange c'est j'utilise cette fonction dans une fonction en PL/pgSQL et qu'elle n'est pas entre guillemet
ça n'empêche pas que cela fonctionne mais c'est étrange

SELECT  
	
		to_number((
		(substring(annnee,3,2) ||
		(case CHAR_LENGTH(mois)
		when 1 then '0'||mois
		when 2 then mois
		end)
		|| decade)), '999999') as date_prel, 
......

Hors ligne

#4 29/06/2011 16:36:03

gleu
Administrateur

Re : Fonction substring

Oui, en soi, ça ne dérange pas. Les doubles guillemets sont là surtout pour les noms dont la casse est partiellement ou complètement du majuscule ou pour les noms contenant des caractères spéciaux (style espace, retour chariot).


Guillaume.

Hors ligne

Pied de page des forums