ユーザーがSQL Serverデータベースに対してクエリを実行するための簡単なUIを作成しました。 UIは、人の名前の入力フィールドの1つとして開始されました。このフィールドの入力は、データベース上の3つのフィールドを検索するために使用されます。これまでのクエリは次のようになります。このT-SQLクエリに追加する構文
SELECT [Id], [Url], [PersonName], [BusinessName], [DOB], [POB], [Text]
FROM dbo.DataAggregate
WHERE CONTAINS([PersonName], 'NEAR((john, doe), 2, FALSE)')
OR CONTAINS([BusinessName], 'NEAR((john, doe), 2, FALSE)')
OR CONTAINS([Text], 'NEAR((john, doe), 2, FALSE)')
上記は、ユーザーがJohn Doeに対して質問したと仮定しています。 NEARの要件は、フィールド内のデータ間のフォーマットの不一致に関係していますが、これはFYIのこの問題とは関係ありません。
ここでは、UIに4つの入力フィールドを追加して、ユーザーがさらにクエリを調整できるように指示されました。これらのフィールドは、すでにDBレコードに存在します。私の質問は、UIの追加フィールドが使用されたときに、上記のクエリにどのように追加するのですか?私はそれにいくつかのANDステートメントまたはORステートメントを単に追加するだけですか?
は私はあなたが私を助ける助けるために例を挙げてみましょう:
User Query:
Person Name: John Doe
DOB: 01/01/1900
Address: 123 Main St
POB: USA
Occupation: Worker
私は他の4つの入力フィールドのデータが含まれるように、私のクエリに追加する方法は?最初に、どの入力フィールドに入力されたフィールドと入力されていないフィールドを扱うために、クエリにIF文が必要ですか?
他の4つの入力フィールドの各値は、テキストフィールド自身のフィールドで検索する必要がある、プラスでしょう - すなわち -The DOBは、DOBフィールドとテキストフィールドに -The住所で検索する必要がありますを希望アドレスフィールドとテキストフィールドで検索する必要があります など
このようなクエリを構造化するには、上記のクエリと同様の5セクションをIF/AND/OR。
ありがとうございます。
おかげで - 今のは、これ以上の入力を想定してみましょうするためには、私にスローされます。私は確かに言及したそれらの他のオプションを確かに探検します。 – Stpete111
入力が必須であるかどうか、および入力が必須であることも考慮する必要があります。名前を入力する必要がある場合は、他の入力は別の方法で処理されます。それは最も困難なケースなので、私はあなたの入力のすべてがオプションであると仮定します。また、他のフィールドも3つの異なる場所でチェックされますか? –
@LaughingVergil技術的には必須ではないが、ユーザーは常に少なくとも名前フィールドに何かを入力する。他の4つは常にオプションです。あなたの最後の質問に関しては、他の4つの入力フィールドは、それぞれのフィールドとテキストフィールドの2つの異なる場所でチェックされます。 – Stpete111