Моя таблица содержит поле lastName
, которое UNICODE
Как перевести юникод на латинский язык в Терадате?
Мне нужно реализовать функцию SOUNDEX
, но это не будет работать, потому что она требует только latin
. Таким образом, я попытался преобразовать его в latin
, но все еще получаю ту же ошибку only latin letters allowed
Вот что я пытался
SEL *
FROM tab_test
WHERE SOUNDEX(REGEXP_REPLACE(lastName, '[^A-Z]', '')) = 'smith'
SEL *
FROM tab_test
WHERE SOUNDEX(TRANSLATE(lastNameUSING unicode_to_latin)) = 'smith'
Как я могу исправить проблему
EDIT
Вот что я пробовал, как предлагает dnoeth. Но она по-прежнему не работает
SEL *
FROM tab_test
WHERE SOUNDEX(TRANSLATE(REGEXP_REPLACE(
lastName,'[^a-zA-Z]','') USING
UNICODE_TO_LATIN)) = 's530'
EDIT 2
Вот запрос, который не работает
SEL lastName, REGEXP_REPLACE(lastName, '[^a-zA-Z]', '') lastName_regex
FROM (SEL *
FROM tab_test
WHERE personId < 10
) der
WHERE SOUNDEX(REGEXP_REPLACE(lastName, '[^a-zA-Z]', '')) = 's530'
Результат REGEXP югу запроса следующие
SEL lastName, REGEXP_REPLACE(lastName, '[^a-zA-Z]', '') lastName_regex
FROM (SEL *
FROM tab_test
WHERE personId < 10
) der
Результат копируется непосредственно из помощника Teradata Sql
LASTNAME lastName_regex
1 Smith Smith
2 Smith Smith
3 Smith Smith
4 Smith Smith
5 Smith Smith
6 Smith Smith
7 Smith Smith
8 Smith Smith
Я все еще получаю ту же ошибку. Регулярное выражение не помогает – Pasha
Это должно работать, странно. Каков ваш точный релиз Teradata ('select * from dbc.dbcinfoV где InfoKey = 'Release'')? Можете ли вы показать некоторые плохие данные, только результат REGEXP_REPLACE? – dnoeth
Релиз \t '14.00.07.14' Плохие данные выглядят нормально. Я скопировал его непосредственно из SQL-помощника. Этот небольшой пример выше не работает – Pasha