Salut,
J'ai un problème avec une requête qui doit me concatener deux chaines dont une qui peut etre NULL. J'ai tenté plusieurs choses mais je n'arrive pas a trouver de solution. V'là ma requête originale:
Select iddossier, (diametre1 || '/' || diametre2) as diametre from t_tabbran where iddossier = 2492;
et quoiqu'il arrive, diametre me renvoie NULL (pas une chaine vide, ou un espace mais bien NULL). avec un COALESC idem:
Select (diametre1 || '/' || COALESCE(diametre2)) as diametre from t_tabbran where iddossier = 2492;
J'ai tenté de tester si diametre2 est NULL et de le remplacer par ' ' dans une proc stock, même résultat:
requete:
Select (f_concat(to_char(diametre1,'9999'),to_char(diametre2,'9999'))) as diametre from t_tabbran where iddossier = 2492;
fonction:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| CREATE OR REPLACE FUNCTION drab.f_concat(varchar, varchar)
RETURNS varchar AS
'DECLARE
v_chaine varchar;
BEGIN
--Concaténation des deux chaines
IF ($2 IS NOT NULL) THEN
v_chaine := $1 || \'/\' || $2;
ELSE
v_chaine := $1;
END IF;
return v_chaine;
END
'
LANGUAGE 'plpgsql' IMMUTABLE STRICT; |
j'ai surement du merder quelque part sinon ca marcherait mais la je vois plus rien j'ai envie de tout casser
. toute aide est la bienvenue.
Partager