2
例如,我有一个包含字符串的列(英文 - “A”,“B”)“AB1234”,我想将它与字符串“AB1234”(俄语“A”,“B” ), 例如。 是否有任何内置函数来实现这一点?通过书面表示比较字符串 - 可以吗?
我发现的最好的方法是使用翻译功能,我列举了所有需要的符号。
例如,我有一个包含字符串的列(英文 - “A”,“B”)“AB1234”,我想将它与字符串“AB1234”(俄语“A”,“B” ), 例如。 是否有任何内置函数来实现这一点?通过书面表示比较字符串 - 可以吗?
我发现的最好的方法是使用翻译功能,我列举了所有需要的符号。
您正在寻找功能LOOKS LIKE
。
不幸的是SQL
中没有这样的功能。
相反,你可以创建每个字符串强制转换为使用TRANSLATE
一个共同点基于函数的索引和搜索字符串:
CREATE INDEX ix_mytable_transliterate ON (TRANSLATE(UPPER(str), 'АВЕКМНОРСТУХ', 'AВEKMHOPCTYX'))
SELECT *
FROM mytable
WHERE TRANSLATE(UPPER(str), 'АВЕКМНОРСТУХ', 'AВEKMHOPCTYX') = TRANSLATE(UPPER('весна на танке'), 'АВЕКМНОРСТУХ', 'AВEKMHOPCTYX')
+1,很好的提醒,这个世界是不是所有的英语;-) – DCookie 2009-06-30 17:21:26