我的表包含一个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'
我该如何纠正这个问题
编辑
这是我尝试过的 dnoeth 建议的。但它仍然不起作用
SEL *
FROM tab_test
WHERE SOUNDEX(TRANSLATE(REGEXP_REPLACE(
lastName,'[^a-zA-Z]','') USING
UNICODE_TO_LATIN)) = 's530'
编辑 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 assistant 复制
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