2010-11-26 19 views
0

J'ai ce tableau dont je voudrais sélectionner les valeurs. La chose est que je voudrais obtenir la quantité exacte de longueur dans la sortie de mon select comme je l'ai dans ma table. Par exemple:Comment sélectionner avec la longueur du champ/untrim en utilisant select

CREATE TABLE myschema.test_table 
(
id serial NOT NULL, 
otyp CHARACTER VARYING(3), 
fname CHARACTER VARYING(8), 
age integer 
) WITH(OIDS=FALSE);

Et disons que ce tableau contient


id | otyp | fname | age 
----+------+--------+----- 
    1 | aa | gustav | 20 
(1 row) 

SELECT id || otyp || fname || age FROM myschema.test_table;


Cela me donne ce résultat:

1aagustav20

Je veux que la sortie soit
1aa gustav 20

Toute aide serait appréciée!

Répondre

0

Je résolu le problème!

SELECT id 
    || RPAD(otyp, 3, ' ') 
    || RPAD(fname, 8, ' ') 
    || age 
FROM 
    myschema.test_table;
0

Il suffit de faire

SELECT id || otyp || ' ' || fname || ' ' || age FROM myschema.test_table; 
+0

Cela ne m'aiderait que pour la rangée ci-dessus, que ferais-je si j'ai plusieurs lignes avec des valeurs différentes? – dirbacke

+1

Pourquoi ce qui précède ne fonctionnerait pas avec d'autres lignes? De toute façon, il me semble que vous avez mal défini votre problème. La mise en forme de la sortie ne doit pas être gérée au niveau SQL. – jira