例如我有一个包含字符串的列(英文 - “A”,“B”)“AB1234”,我想将它与字符串“AB1234”进行比较(俄文“A”,“B” “ ), 例如。 有没有内置功能来实现这一目标?
我找到的最好方法是使用Translate func,其中列举了所有需要的符号。
答案 0 :(得分:2)
您正在寻找一个功能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')