SQL クエリの定義

有効な SQL SELECT 文を [Candidate Finder オプション] ダイアログ ボックスのテキスト ボックスに入力できます。
注: Select * は無効です。
例えば、Customer_Table というテーブルがデータベース内にあり、以下の列が含まれると仮定します。
  • Customer_Table
  • Cust_Name
  • Cust_Address
  • Cust_City
  • Cust_State
  • Cust_Zip

データベースからこれらの行をすべて取得するには、次のようなクエリを作成します。

SELECT Cust_Name, Cust_Address, Cust_City, Cust_State, Cust_Zip from Customer_Table; 

データベース内のすべての行にマッチするようなトランザクションを実行することは、実際にはほとんどないでしょう。 必要な候補レコードのみを返すには、置換変数を使って WHERE 節を追加します。 置換変数は、変数をサスペクト レコードの実データで置換するように Candidate Selection エンジンに指示するために使用できる特殊な表記です。

置換変数を使うには、${FieldName} のようにフィールド名をカッコで囲み、その直前にドル記号を付けます。 例えば、次のクエリを実行すると、サスペクト レコード内の PostalCode の値に Cust_Zip の値が一致するレコードのみが返されます。

SELECT Cust_Name, Cust_Address, Cust_City, Cust_State,Cust_Zip 
FROM Customer_Table 
WHERE Cust_Zip = ${PostalCode}; 

SQL 2000 では、データ タイプは Candidate Finder で使われるタイプと同一である必要があります。 JDBC ドライバは、WHERE 節で使用する Candidate Finder 入力変数 (Ex: ${MatchKey}) を nVarChar(4000) データ タイプに設定します。 データベース内でデータが VarChar データ タイプに設定されている場合、SQL Server はデータベースのインデックスを無視します。 インデックスが無視されると、パフォーマンスが低下します。 したがって、SQL 2000 では以下のクエリを使ってください。

SELECT Cust_Name, Cust_Address, Cust_City, Cust_State,Cust_Zip 
FROM Customer_Table 
WHERE Cust_Zip = CAST(${PostalCode} AS VARCHAR(255));