Как создать последовательный список идентификаторов, используя буквы вместо цифр?

# #google-bigquery

Вопрос:

Я хочу создать массив последовательных идентификаторов, используя буквы вместо цифр, чтобы использовать их в качестве идентификаторов в таблице.

Это то, что мне нужно:

 [a, b, c, ---, z, ab, ac, --- az, ba, bb, --- bz, ca, cb, --- cz, da, ----- zzz]
 

Возможно ли это создать только в стандартном SQL? (Желательно не сценарий или хранимая процедура) К сожалению, я понятия не имею, с чего начать, и не могу найти хороших примеров решения чего-то подобного, чтобы использовать в качестве отправной точки.

Ответ №1:

Рассмотрим следующий подход

 with abc as (
  select chr(i) char from unnest(generate_array(97,122)) i 
  union all select ''
)
select distinct t1.char || t2.char || t3.char as id
from abc t1, abc t2, abc t3
where t1.char || t2.char || t3.char != ''
order by length(id), id     
 

с выходом

введите описание изображения здесь
. . . введите описание изображения здесь

Комментарии:

1. Это идеально. Спасибо