PostgreSQL ひらがなからカタカナへ置換

CREATE FUNCTIONによるカタカナ置換関数を定義

ひらがなをカタカナに置換する関数を定義。
lowerやupperのようにひらがなをカタカナに置換。

SQL

CREATE OR REPLACE FUNCTION to_kana(text) RETURNS text AS $$ BEGIN RETURN translate( $1, 'ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんゕゖ', 'ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヵヶ' ); END; $$ LANGUAGE 'plpgsql';
pgdb=# \df 関数一覧 スキーマ | 名前 | 結果のデータ型 | 引数のデータ型 | 型 ----------+---------+----------------+----------------+---------------- public | to_kana | text | text | normal(通常) (1 行)

ぁ~ゖの並びは文字コード表 UTF8 ひらがな、カタカナを参照。

pgdb=# SELECT foo_name FROM foo; foo_name ---------- りんご ばなな (2 行) pgdb=# SELECT to_kana(foo_name) FROM foo; to_kana --------- リンゴ バナナ (2 行)

関数化しない場合。

pgdb=# SELECT foo_id,translate(foo_name, 'ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんゕゖ', 'ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヵヶ') FROM foo; to_kana --------- リンゴ バナナ (2 行)

カタカナからひらがな。ヴは置換対象外。

SQL

CREATE OR REPLACE FUNCTION to_hiragana(text) RETURNS text AS $$ BEGIN RETURN translate( $1, 'ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヵヶ', 'ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんぶゕゖ' ); END; $$ LANGUAGE 'plpgsql';

最新の記事

プロフィール

流されるままにウェブ業界で仕事しています。
主にLAPP環境でPHPを書いています。
最近はjQueryをよく書いています。