Вы опубликовали вопрос о NORMALIZE
, но не определили свои цели.
Здесь я отвечу на вопрос о NORMALIZE
- чтобы указать, что он, вероятно, не делает того, чего вы ожидаете. Но, по крайней мере, он действует, как и ожидалось.
Есть много способов кодировать одну и ту же строку с помощью Unicode. Normalize выбирает один, сохраняя строку.
См. Этот запрос:
SELECT *, a=b ab, a=c ac, a=d ad, b=c bc, b=d bd, c=d cd
FROM (
SELECT NORMALIZE('hello ñá ?', NFC) a
, NORMALIZE('hello ñá ?', NFKC) b
, NORMALIZE('hello ñá ?', NFD) c
, NORMALIZE('hello ñá ?', NFKD) d
)

Как видите - каждый раз, когда вы получаете одну и ту же строку, они просто имеют разные невидимые представления.