データベースデータのフィルターと並べ替え (SQL WHERE/ORDER)

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  データソースとターゲット > MapForce とデータベース >

データベースデータのフィルターと並べ替え (SQL WHERE/ORDER)

データベースデータをフィルターし、並べ替える場合、 SQL WHERE/ORDER コンポーネントを使用します。これにより、データをフィルターする SQL WHERE 句を MapForce グラフィカルユーザーインターフェイスから入力することができます。または、特定のデータベースフィールドによるレコードのセットを昇順および降順に並べ替える場合、 ORDER BY 句を指定することもできます。

 

SQL WHERE/ORDER コンポーネントはデータベースマッピングコンポーネントに接続されている必要があります。ジョインされたセット、または、レコードをフィルターする必要がある場合、 SQL WHERE/ORDER をジョインコンポーネントに接続することもできます(次を参照してください: データベースのデータのジョイン)。

 

SQL WHERE/ORDER コンポーネントをマッピングに追加する

 

1.「挿入」 メニューから SQL WHERE/ORDER をクリックします。 デフォルトでは、 SQL WHERE/ORDER コンポーネントは次の 構造を持ちます:

mf_sql-where

2.ソースデータベーステーブルを接続 、または、SQL WHERE/ORDER の table/field アイテムのフィールドに接続します。例えば、 <マイ ドキュメント>\Altova\MapForce2019\MapForceExamples\ フォルダーからマッピング DB_PhoneList.mfd を開きます。このマッピングでは、SQL WHERE/ORDER は、 ソース テーブル 「Person」から、 「B」 文字から始まる姓を持つ全てのレコードをフィルターします。

mf_sql-where1

3.SQL WHERE/ORDER コンポーネントのヘッダーをダブルクリックします。(または、右クリックしてコンテキストメニューからプロパティを選択します)。 これにより、「SQL WHERE/ORDER プロパティ」 ダイアログボックスが開かれます。

mf_sql-where2

4.上のテキストボックスに SQL WHERE 句 を入力します。または、 ORDER BY 句を入力します。上のイメージは DB_PhoneList.mfd マッピング内で定義されている WHERE と ORDER BY 句を示しています (この設定については、下で詳しく説明されています)。 例えば、次を参照してください: WHERE と ORDER BY 句の作成

 

SQL WHERE/ORDER にパラメーターを与える

マッピング DB_PhoneList.mfd 内で使用されている SQL WHERE/ORDER コンポーネントは、 WHERE 句を次のように定義しています:

 

Last LIKE :Name

 

「Last」 は、接続されたテーブル内のデータベースフィールド名を参照しています。「LIKE」 は、 SQL 演算子です。 「:Name」 は、マッピング上に 「Name」 という名前のパラメーターを作成します。

 

SQL WHERE/ORDER コンポーネント内のパラメーターは任意です。マッピングから WHERE 句に値をパスする際に役に立ちます。パラメーター無しでは、上の WHERE 句は以下のように書くことができます:

 

Last LIKE "B%"

 

これは 「B」から始まる姓を持つ全ての個人を抽出します。クエリに更に柔軟性を与えるため、 「B%」 の代わりにパラメーターを追加します。これによりマッピングから他の文字を与えることができるようになります (例えば、 「C」、そして、定数、または、マッピング入力パラメーターを変更するだけで、 「C」 から始まる姓を持つ個人を抽出できるようになります)。

 

 

SQL WHERE/ORDER コンポーネントの表示

SQL WHERE/ORDER コンポーネントの重要な点は設定内の定義により外観が異なる点です。このようにして SQL WHERE/ORDER コンポーネントの振る舞いを直接マッピングから確認することができます。例:

 

sql-ord3

WHERE 句 が定義済みです。

sql-ord1

定義済みのパラメーターが存在する WHERE 句。 パラメーター 「Name」  「table/field」 アイテムの下に表示されています。

sql-ord2

定義済みのパラメーターが存在する WHERE 句 。 更に、 ORDER BY 句 が定義済みです。 並べ替えは、 A-Z 並べ替えアイコンにより表示されています。

 

SQL WHERE/ORDER ヘッダーにマウスのカーソルをポイントすると、定義されている異なる句を表示するヒントが表示されます。


(C) 2019 Altova GmbH