使用可能な7つの列のうち3つにその行のデータが含まれている場合は、行を含める必要があります。そのようなことを行うためのベストプラクティスはありますか?私が思いついた解決策は問題ないようですが、もっと受け入れられているパターンがあるかどうか疑問に思っていますか?正確な詳細については、こちらをご覧ください。以下は、私が達成しようとしていることの要点です。
CREATE TABLE Customer(
FirstName varchar(50) NULL,
LastName varchar(50) NULL,
AddressLine1 varchar(100) NULL,
AddressLine2 varchar(100) NULL,
City varchar(50) NULL,
State char(3) NULL,
Country char(2) NULL)
Insert Into Customer Values('Bob', null, '', 'addr2', 'city', '', null)
Insert Into Customer Values('', '', '', '', '', '', '')
Insert Into Customer Values(null, null, null, null, null, null, null)
SELECT *
FROM Customer
WHERE (CASE WHEN IsNull(FirstName, '') = '' THEN 0 ELSE 1 END
+ CASE WHEN IsNull(LastName, '') = '' THEN 0 ELSE 1 END
+ CASE WHEN IsNull(AddressLine1, '') = '' THEN 0 ELSE 1 END
+ CASE WHEN IsNull(AddressLine2, '') = '' THEN 0 ELSE 1 END
+ CASE WHEN IsNull(City, '') = '' THEN 0 ELSE 1 END
+ CASE WHEN IsNull(State, '') = '' THEN 0 ELSE 1 END
+ CASE WHEN IsNull(Country, '') = '' THEN 0 ELSE 1 END)
>= 3