タイトルで簡単に説明しようとします。のは、私が[人]と呼ばれるテーブルを持っており、その中の各レコードは、カラムとして持つ、人であることを言ってみましょう: 名前、姓とHashId。 は今、私のコードで私は、例えば同様に、基準の名前と姓として使用することによって、この表に検索できるようにしています:両方の検索基準に一致するレコードをSQLサーバーで検索して返すだけでなく、他のレコードと比較する
SELECT *
FROM [Persons]
where Name = '..' AND Surname = '..'
これは、検索条件に一致するすべてのレコードを返します。 3番目の列は、名前と姓に依存する計算列です。だから、 "Alex Foo"という名前の人を探して、データベースに同じ名前と姓の2人がいる場合、彼らのHashIDは同じになります。私が今したいのは、私のクエリがそれらの2つのレコードを返すのではなく、ただ1つだけです。クエリは、HashIDが同じかどうかをチェックできなければならず、その場合、これを満たすすべてのレコードルール。この目的を達成するためにSQLクエリを変更するにはどうすればよいですか?前もって感謝します!
編集:私はあなたの答えで明らかになった情報を省略しました。私は次の理由でHashIdをフィルタリングする必要があります: "Alex"と "alex"という名前のレコードが2つある場合、それらのHashIdは自分のロジックに従って同じになります。あなたが私に与えた説明よりも複雑です)。しかし、 "alex"という名前の単純な選択は、それぞれ "Alex"と "alex"という名前の2つの異なるレコードを返します。そのため、ハッシュIDが重要です。
サンプルデータは、これは少し不明です。 name + surnameのハッシュ値が常に同じ場合、なぜHashIDが同じかどうかをチェックする必要がありますか?* name + surnameを検索して検索しているのはなぜですか? –
'DISTINCT名、姓、ハッシュIDを選択しますか?異なる値を返すために 'HashId'カラムは必要ありません –