FireBrid2.5.4でSQL

解決


ビギナ  2015-07-22 02:27:39  No: 47479  IP: [192.*.*.*]

これはdelphiに関することでなくFirebirdに関することかもしれませんが
よろしければどなたか教えてください。
データベースにFireBirdを用いデータベースファイルを作りました。データを
ア行、カ行、サ行という風に抽出したかったためSQL文を送って実現しようと思いました。ア行の抽出にはこのように書きました。
select * from <table> where namekana like '[ア-オ]%'
どうもこれが通らないようで、結果に何も出てきません。
人海戦術的に
select * from <table> where namekana like'ア%' or 'イ%' ... 'オ%'
とやるとうまくいきますがこれをワ行までやるとなると...
何かスマートな記述はないでしょうか。ゆくゆくは関数化して
ExtractWithKANA('ア')とやるとア行検索用の文字列が得られるようにと
考えているのですが。

編集    削除
通りすがり  2015-07-22 05:14:28  No: 47480  IP: [192.*.*.*]

Firebirdで正規表現だと

SIMILAR TO
http://www.firebirdsql.org/refdocs/langrefupd25-similar-to.html

とかですかね?とりあえずプログラムでではなく、

FlameRobin
http://osdn.jp/projects/sfnet_flamerobin/

のようなツールで色々試してみるといいんじゃないですか。あとFirebirdの質問は日本ユーザ会のMLのほうがいいかもしれません。

http://lists.osdn.me/mailman/listinfo/firebird-jp-general

から登録できます。

編集    削除
ビギナ  2015-07-22 08:41:07  No: 47481  IP: [192.*.*.*]

http://www.firebirdsql.org/refdocs/langrefupd25-similar-to.html
を参考にさせてもらいました。以下のスクリプトで通りました。
あ行抽出
select * from <table> where comkana similar to '[あ-お]%';
ついでに英数字抽出
select * from <table> where comkana similar to '[a-z]%' or
where comkana similar to '[0-9]%';
でできました。
firbirdは資料が少なそうだと思っていたのですが、本家の英語の資料にも
きちんと目を通さないといけませんね。ありがとうございました。

編集    削除
ビギナ  2015-07-22 08:43:50  No: 47482  IP: [192.*.*.*]

解決です。

編集    削除