2
たとえば、文字列(英語 - "A"、 "B") "AB1234"を含む列があり、それを文字列 "AB1234"(ロシア語の "A"、 "B" )、 例えば。 これを実現する組み込み関数はありますか?文字列を書いた表現で比較することは可能でしょうか?
私が見つけた最も良い方法は、必要なシンボルをすべて列挙するTranslate funcを使うことです。
たとえば、文字列(英語 - "A"、 "B") "AB1234"を含む列があり、それを文字列 "AB1234"(ロシア語の "A"、 "B" )、 例えば。 これを実現する組み込み関数はありますか?文字列を書いた表現で比較することは可能でしょうか?
私が見つけた最も良い方法は、必要なシンボルをすべて列挙するTranslate funcを使うことです。
あなたは関数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
@DCookie:ロシアでは、ナンバープレートのラテン文字とキリル文字の両方に共通の12文字しか使用しません。自動車のデータベースではよくある問題です。 – Quassnoi