поиск имен с акцентом - PullRequest
       8

поиск имен с акцентом

0 голосов
/ 26 ноября 2018

Я пытаюсь найти способ перечислить только имена с акцентом.

Я использую следующий пример, взятый из этого вопроса https://dba.stackexchange.com/questions/94887/what-is-the-impact-of-lc-ctype-on-a-postgresql-database

select firstname from (values ('bernard'), ('bérénice'), ('béatrice'), ('boris')) 
 AS l(firstname)
order by firstname collate "C";

Токовый выходэто

firstname
-------
bernard
boris
béatrice
bérénice

Ожидаемый результат:

firstname
-------
béatrice
bérénice

Любой Ида, что я должен указать в операторе where?

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Возможно, это даст больше, чем вы просите, но если вы хотите найти все записи, содержащие символы Юникода, вы можете использовать регулярное выражение для "not ASCII":

select firstname
from (values ('bernard'), ('bérénice'), ('béatrice'), ('boris')) 
 AS l(firstname)
where
  firstname ~ '[^[:ascii:]]'

Опять же,это будет включать в себя больше, чем просто акценты, но в зависимости от вашего варианта использования это может удовлетворить потребность.

0 голосов
/ 26 ноября 2018

Сначала необходимо создать расширение:

CREATE EXTENSION unaccent;

Затем вы можете проверить с помощью этого запроса:

SELECT l.firstname 
FROM (VALUES ('bernard'), ('bérénice'), ('béatrice'), ('boris')) AS l(firstname)
WHERE l.firstname <> unaccent(l.firstname);
...