1
- 詳細をし、私は何を見つけたいと思うことは唯一の方法である(のような以下のものを開始最も特定のレコード検索 - SQL私は2つのテーブルのマスター持っ
Create Table #Master(MasterId int, Method varchar(100))
Insert Into #Master Values(1,'MasterDefault')
Create Table #Detail(Id int, MasterId int,ATypeId int, BTypeId int,CTypeId int,DetailMethod varchar(100))
Insert Into #Detail
Values(1,1,1,1,1,'Detail All'),
(2,1,null,1,1,'Detail ATypeId null'),
(3,1,null,null,1,'Detail ATypeId and Btype null'),
(4,1,null,null,null,'Detail all null')
入力パラメータに基づいて、より関連性の高い結果を見つけようと、以下のようなパラメータ
イドROW1ディテール全ての入力一致として1つのレコードイド - 詳細を返すたいこの場合
declare @Id int =1,
@AtypeId int =1,
@BtypeId int=1,
@CtypeId int =1
Select *
from #Master M
left outer join #Detail D on M.MasterId = D.MasterId
Where M.MasterId = @Id
AND (([email protected]) OR (D.ATypeId IS NULL))
AND (([email protected]) OR (D.BTypeId IS NULL))
AND (([email protected]) OR (D.CTypeId IS NULL))
)マスターまたは詳細のいずれかから
declare @Id int =1,
@AtypeId int =null,
@BtypeId int=1,
@CtypeId int =1
は
IDが2であなたのために動作します。この