FireBrid2.5.4でSQL

解決


ビギナ  2015-07-22 02:27:39  No: 47479

これは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

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

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

解決です。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加