このテーブルを正規化する必要がある、ベスト プラクティスなどを誰かが暴言を吐く前に、これは SQL Server 2008 R2 にある古いテーブルであり、それを変更することについて何もできないことを認めます。そうは言っても、このテーブルには次の列があります。
"PreparedBy", "PrelimApprovalBy", "Approval1Signer", "Approval2Signer"
これらのフィールドはすべて、ユーザー名、NULL、または '' のいずれかです。上記の 2 つ以上のフィールドに同じユーザー名が表示されるすべての行を取得したいと考えています。2 つのフィールドが NULLの場合、それらは一致ではなく、両方が '' の場合は一致しません。したがって、NULL と '' は何も意味しないため、両方を除外する必要があります。
これまでのところ私が考えていることは次のとおりですが、好きではありません:
次の行に沿って何かを行うことにより、WHERE句のすべての順列をチェックすることを考えています(NULLと '' をチェックします)。
WHERE PreparedBy = PrelimApprovalBy OR PreparedBy = Approval1Signer OR ...
それを行うためのより良い方法が必要です。