la concaténation de deux valeurs int dans postgresql
J'ai 7 valeurs entières (avec 3,1,3,4,4,5,4 chiffres respectivement) et je dois concaténer en un seul entier (j'.e 24 chiffres pas.) . J'ai essayé de faire comme ceci
create or replace function gen_id(int,int,int,int,int,int,int) returns bigint as $$
declare
id bigint;
begin
id = $1 * 1000000000000000000000 + $2 * 100000000000000000000 + $3 * 100000000000000000 + $4 * 10000000000000 + $5 * 1000000000 + $6 * 10000 + $7;
return id;
end;
$$ language plpgsql;
select * from gen_id(100,1,101,1000,1001,10001,1000);
Mais quand je l'execute, je reçois l'erreur: bigint hors de portée . Est-il un autre de meilleure façon de le faire ?
grâce
Par "concaténation", entendez-vous la concaténation de chaîne (après la coulée de façon appropriée)?
OriginalL'auteur Kumar Rajput | 2012-06-25
Vous devez vous connecter pour publier un commentaire.
Ce sujet:
Si vous arrive d'avoir votre Id dans un tableau, alors vous pouvez faire:
jeter le résultat dans
numeric(24,0)
. Mis à jour.+1. Aussi, comme pour info (car vous utilisez PostgreSQL), vous pouvez faire de la coulée à l'aide de l'un peu plus pratique
::
de l'opérateur. En d'autres termes,CAST(num1 AS text)
est le même quenum1::text
.vrai. Je préfère utiliser
CAST()
sur de SORTE que c'est un standard de l'opérateur, tandis que::
est un PostgreSQL spécifique.La deuxième requête est vouée à l'échec sans une
ORDER BY
clause.OriginalL'auteur vyegorov
Que je peux concaténer une chaîne de caractères en entier
usuarioid est string + 1
OriginalL'auteur Pedro Ulises