Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 Re : PL/pgSQL » ligne vers un tableau » 30/07/2013 08:42:53
ok merci, C'est ok
#2 Re : PL/pgSQL » ligne vers un tableau » 29/07/2013 14:11:25
Ok C'est resolu la moyenne,
Merci beaucoup
#3 Re : PL/pgSQL » ligne vers un tableau » 29/07/2013 14:03:51
ok j'ai resolu le problème, j'ai obtenu le min et le max
il me reste la moyenne car ma liste est en character varying et donne un erreur.
je cherche encore la solution
#4 Re : PL/pgSQL » ligne vers un tableau » 29/07/2013 13:22:26
j'ai un ptit erreur sur le copy coller mais l'idee c'est ca
#5 Re : PL/pgSQL » ligne vers un tableau » 29/07/2013 12:17:14
est ce que ca ressemble a ca par exemple:
CREATE OR REPLACE FUNCTION get_avg( mylist character varying[])
RETURNS character varying AS
$BODY$declare
inombre character varying(128);
begin
for inombre in select unnest(mylist)
loop
SELECT MAX(inombre) FROM UNNEST(tmplist) val;
end loop;
return val;
end;$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION get_avg( character varying [])
OWNER TO postgres;
-----------------------------------------------------------
-------------------------------------------------------------
ou
-------------------------------
---------------------------
CREATE OR REPLACE FUNCTION get_avg( mylist character varying[])
RETURNS character varying AS
$BODY$declare
inombre character varying(128);
ex character varying = '';
begin
ex = SELECT MAX(val) FROM UNNEST(mylist) val;
return ex;
end;$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION get_avg( character varying [])
OWNER TO postgres;
--select get_avg('{1.5,1.9,34,0.3}')
j'ai un peu du mal sur l'utilisation syntaxique, je debute sur Postgres
l'erreur est:
ERREUR: la requête n'a pas de destination pour les données résultantes
HINT: Si vous voulez annuler les résultats d'un SELECT, utilisez PERFORM à la place.
CONTEXT: fonction PL/pgsql get_avg(character varying[]), ligne 26 à instruction SQL
********** Erreur **********
ERREUR: la requête n'a pas de destination pour les données résultantes
État SQL :42601
Astuce : Si vous voulez annuler les résultats d'un SELECT, utilisez PERFORM à la place.
#6 Re : PL/pgSQL » ligne vers un tableau » 29/07/2013 11:47:50
C'est OK merci , et est 'il possible d'utiliser la fonction min ou max ou avg sur ma liste dans un tableau
#7 Re : PL/pgSQL » ligne vers un tableau » 29/07/2013 11:34:02
CREATE OR REPLACE FUNCTION get_avg( mylist character varying[])
RETURNS character varying AS
$BODY$declare
tmplist character varying[];
inombre character varying(128);
tmp character varying(128) = '';
tmp2 character varying(128) = '';
content_col character varying(128);
begin
for inombre in select unnest(mylist)
loop
content_col =inombre;
if substring(content_col, length(content_col), 1) = '+' then
tmp = replace(content_col, '+', '');
array_append(tmplist,tmp);
else
end if;
end loop;
end;$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION get_min( character varying [])
OWNER TO postgres;
et les message d'erreur est
ERREUR: erreur de syntaxe sur ou près de « array_append »
LINE 23: array_append(tmplist,tmp);
^
********** Erreur **********
ERREUR: erreur de syntaxe sur ou près de « array_append »
État SQL :42601
Caractère : 526
#8 Re : PL/pgSQL » ligne vers un tableau » 29/07/2013 10:39:53
salut l'ami,
comment faire pour insérer une valeur dans un tableau de string.
par exemple si j'ai un boucle a j’insère la valeur dans un tableau selon ma condition dans la boucle
merci
#9 Re : PL/pgSQL » ligne vers un tableau » 25/07/2013 17:50:49
C'est OK merci beaucoup
#10 Re : PL/pgSQL » ligne vers un tableau » 25/07/2013 17:42:13
mon postgres c'est 9.1.1 et n'accepte pas le foreach
#11 Re : PL/pgSQL » ligne vers un tableau » 25/07/2013 17:40:45
donc ton tableau s'appelle a_ ???
#12 Re : PL/pgSQL » ligne vers un tableau » 25/07/2013 17:25:17
et pour le parcours,
par exemple si j'ai un tableau "myTab",
Est ce que je peux faire :
FOR inombre in myTab
LOOP
ou autres,
parce que ca genère toujours des erreurs,
merci
#13 Re : PL/pgSQL » ligne vers un tableau » 25/07/2013 17:08:15
salut
C'est exactement la fonction que je cherche.
merci beaucoup.
#14 PL/pgSQL » ligne vers un tableau » 25/07/2013 14:01:29
- thierrythie
- Réponses : 21
bonjour a tous,
j'ai besoin de convertir des lignes dans un champs en tableau,
je crois 'est pas assez claire mais je vais illustrer avec un exemple.
Si j'ai le nom d'une colonne TEST:
TEST
----
1
6
4
9
est ce que c'est possible de faire select Array(TEST) from .......... par exemple pour avoir (1,6,4,9).
merci de votre aide
Pages : 1