Задача, которая встала передо мной на этот раз — немного необычна.
Требуется: достать из таблицы БД postgresql все уникальные первые символы. Алфавитный справочник составляю.
Проблема: postgres работает в режиме sql-ascii, символы могут занимать разное число байт.
Проблема2: postgres не имеет функции конвертации символов, а substr работает с байтами.

Решение:
SELECT DISTINCT
CASE
when ascii(substr(word,1,1))<192 then substr(word,1,1)
when ascii(substr(word,1,1))<224 then substr(word,1,2)
when ascii(substr(word,1,1))<240 then substr(word,1,3)
when ascii(substr(word,1,1))<248 then substr(word,1,4)
when ascii(substr(word,1,1))<252 then substr(word,1,5)
else substr(word,1,6)
END as letter
FROM table;