How to make the generate_series to generate the letter series?

Started by Wen Yialmost 3 years ago3 messagesgeneral
Jump to latest
#1Wen Yi
896634148@qq.com

Hi team,
when I study the generate_series function, I found that it can not only generate the number series but also can generate the date series.(ref: https://www.postgresql.org/docs/current/functions-srf.html)
That means I can make the generate_series to generate the letter series.

So I try this command (I guess I can follow the ascil code rule to complete this work):

# SELECT * FROM generate_series('a'::int, 'z'::int, 1);

But the postgres reply me a error, because the 'a' can't translate into 'integer' type.

Can someone provide me a better solution?
Thanks in advance!

Yours,
Wen Yi

#2Ian Lawrence Barwick
barwick@gmail.com
In reply to: Wen Yi (#1)
Re: How to make the generate_series to generate the letter series?

2023年5月29日(月) 12:39 Wen Yi <896634148@qq.com>:

Hi team,
when I study the generate_series function, I found that it can not only generate the number series but also can generate the date series.(ref: https://www.postgresql.org/docs/current/functions-srf.html)
That means I can make the generate_series to generate the letter series.

So I try this command (I guess I can follow the ascil code rule to complete this work):

# SELECT * FROM generate_series('a'::int, 'z'::int, 1);

But the postgres reply me a error, because the 'a' can't translate into 'integer' type.

Can someone provide me a better solution?
Thanks in advance!

SELECT chr(x + 96) FROM generate_series(1, 26) x

Regards

Ian Barwick

#3Bruce Momjian
bruce@momjian.us
In reply to: Ian Lawrence Barwick (#2)
Re: How to make the generate_series to generate the letter series?

On Mon, May 29, 2023 at 12:51:15PM +0900, Ian Lawrence Barwick wrote:

2023年5月29日(月) 12:39 Wen Yi <896634148@qq.com>:

Hi team,
when I study the generate_series function, I found that it can not only generate the number series but also can generate the date series.(ref: https://www.postgresql.org/docs/current/functions-srf.html)
That means I can make the generate_series to generate the letter series.

So I try this command (I guess I can follow the ascil code rule to complete this work):

# SELECT * FROM generate_series('a'::int, 'z'::int, 1);

But the postgres reply me a error, because the 'a' can't translate into 'integer' type.

Can someone provide me a better solution?
Thanks in advance!

SELECT chr(x + 96) FROM generate_series(1, 26) x

A working example is:

SELECT chr(x + 96) FROM generate_series(1, 26) as f(x);

Here is a blog entry about more complex examples:

https://momjian.us/main/blogs/pgblog/2012.html#July_24_2012

--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com

Only you can decide what is important to you.