1

私のテーブルには、次のフィールド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              
4

3 に答える 3

0

UNICODE_TO_LATIN をエラー付きで使用してみてください

于 2016-12-15T20:53:02.260 に答える