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
。代わりに、列で一致が発生しない可能性があることだけを知っています。
説明が必要な場合はお知らせください。私はこれをうまく表現しなかったかもしれません。