SQL Server(2008)に次のテーブルがあるとします。
Person
|PersonID|NickName|FirstName|LastName|
|1 |Jim |James |Leahy |
|2 |Mike |Michael |Ross |
|3 |Bob |Robert |Helberg |
SQLで次のことが可能かどうか知りたいです。NickNameメインテーブルがあり、と列に基づいて別のテーブルで一致するものを見つけたいと思いFirstNameます。ただし、特定の順序で列を結合する必要があります。
下の表の識別子と一致する上(NickNameまたは)の最初の列に参加したいFirstName
|Identifier|PersonId|
|Jim |1 | <- should return PersonId = 1
|Michael |2 | <- should return PersonId = 2
したがって、一致するものがある場合はNickName、行を選択します。一致するものがない場合はNickName、を見てくださいFirstName。
特定の順序NickNameで列をクエリできる方法はありますか?FirstName
COALESCEいずれかの列が一致することが保証されていないため、機能しないと思いますNULL。代わりに、列で一致が発生しない可能性があることだけを知っています。
説明が必要な場合はお知らせください。私はこれをうまく表現しなかったかもしれません。