2017-11-27 2 views
0

アルファベットの文字リストを返さなければならない関数があります。 内部に何もない正しいサイズのテーブルを取得します。 マイコード:数字をcharのリストに変換します

CREATE OR REPLACE FUNCTION p_get_list(IN nb integer) 
RETURNS TABLE(strconcat text) AS 
$BODY$DECLARE 
i integer; 
j integer; 
r integer; 
strconc text; 

BEGIN 
    j=ASCII('A'); 
    FOR i IN 1..nb LOOP 
     r=j+i-1; 
     SELECT chr(r) INTO strconc; 
     RETURN NEXT; 
    END LOOP; 
end if; 

END;$BODY$ 

ありがとうございました。

+0

は、あなたがやろう何それである: 'generate_series(ASCII( 'A')から(a)のCHRを選択し、ASCII( 'A' )+25,1)a; '?.. –

+0

ありがとうございました! – smiss

+0

長さの系列が異なる可能性があり、長さがnb.soでbixedなので、それはnbで25を置き換えます – smiss

答えて

0

あなたが例えば、それのために既存の機能generate_seriesを再利用することができます

t=# select chr(a) from generate_series(ascii('A'),ascii('A')+25,1) a; 
chr 
----- 
A 
B 
C 
D 
E 
F 
G 
H 
I 
J 
K 
L 
M 
N 
O 
P 
Q 
R 
S 
T 
U 
V 
W 
X 
Y 
Z 
(26 rows) 
関連する問題