帳票ツールFineReport:曖昧検索機能 /* Template Name: singlenew(2019.11.12) */    

帳票ツールFineReport:曖昧検索機能

最終更新日:2020-5-11

FineReportによる作成した帳票で、データの絞り込み検索を行うことには、一般的にチェックボックスやコンボボックスのウィジェットを利用することが多いです。

ここでSQL文で曖昧検索を行う方法を紹介します。テキストウィジェットに一部の文字を入力すればこの文字を含める全てのデータが表示されます。

1.実例

一つのデータベースクエリを追加して曖昧検索のSQL言語を書きます。ここでp_EmployeeNameはパラメータになります。
SELECT * FROM Employees WHERE EmployeeName LIKE ‘%${p_EmployeeName}%’

帳票作成ツール

データベースクエリで取得したフィールドを帳票作成の画面にドラッグして、帳票の様式を整えます。

帳票ツール

パラメータをパラメータパネルに追加して、ウィジェットタイプをテキストに設定します。
帳票ツール

改ページプレビューモードを選択して、作成したテンプレートをブラウザで表示します。効果は下図の通りです。
帳票作成ツール

2.規則

2.1 「%」:0文字または 0 文字以上の任意の文字

Select * from 表名 where 列名 like ‘%’; //全検索
Select * from 表名 where 列名 like ‘x’; //完全一致検索
Select * from 表名 where 列名 like ‘%x’; //右がxで、その前に任意のケタ数がある文字
Select * from 表名 where 列名 like ‘x%’; //左がxで、その後に任意のケタ数がある文字
Select * from 表名 where 列名 like ‘%x%’; //中間がxで、その左右に任意の桁数がある文字

2.2 「_」:1文字

Select * from 表名 where 列名 like ‘_x’; //右がxでその前に1ケタある文字
Select * from 表名 where 列名 like ‘__x’; //右がxで、その前に2ケタある文字
Select * from 表名 where 列名 like ‘x__’; //左がxで、その後に2ケタある文字

2.3 「[ ]」:カッコ内の文字の1つ

検索結果の所属する文字、文字列、または範囲を指定します。
注:「[]」に一連の文字(01234、abcdeなど)がある場合は、「0-4」、「a-e」と簡略にしてもよいです。

(1)sqlserver
select * from 表名 where 列名 like ‘[张李王]三’ //「张三」「李三」「王三」を検索する
select * from 表名 where 列名 like ‘老[1-9]’ //「老一」「老二」…「老九」を検索する
(2)oracle
select * from 表名 where regexp_like(列名,'[张李王]三’)
(3)mysql
select * from 表名 where 列名 rlike ‘[张李王]三’
select * from 表名 where 列名 regexp ‘[张李王]三’

2.4 「[^]」:括弧の列にない1文字

その値は「[]」と同じですが、指定文字以外の任意の文字を検索します。
(1)sqlserver
select * from 表名 where 列名 like ‘[^张李王]三’// 「张三」「李三」「王三」以外の「赵三」「孙三」などを検索する
select * from 表名 where 列名 like ‘老[^1-4]’; //「老1」から「老4」以外の「老5」「老6」などを検索する
(2)oracle
select * from 表名 where regexp_like(列名,'[^李王]三’)
(3)mysql
select * from 表名 where 列名 rlike ‘[^李王]三’
select * from 表名 where 列名 regexp ‘[^李王]三’

2.5 特殊文字あいまい検索

検索したい文字列にワイルドカードが含まれている場合は、次の方法を使用して検索することができます。
(1)sqlerver
特殊文字を含めるには「[ ]」を使います。
(2) mysql
 「\」を使って特殊文字の意味を変更します。
(3) oracle
escapeキーワードで特殊文字の意味を変更します。
select * from 表名 where 列名 like ‘_\%_’ escape ‘\’

トップへ

Privacy

Copyright@2020 Fanruan Software Co.,Ltd

All Rights Reserved