2
예상되는 결과를 표시하려면 다음 테이블이 있어야합니다.SQL Server 2008 R2 : 열에서 null이 아닌 값을 가져옵니다.
표 :
CREATE TABLE Family
(
ID int,
Name varchar(20),
Gender char(1)
);
INSERT INTO Family VALUES
(1,'Ram','M'),
(2,'Suraj','M'),
(3,'Sunitha','F'),
(4,'Deepika','F'),
(5,'Minakshi','F'),
(6,'Somu','M');
CREATE TABLE Child_parent
(
Child_ID int,
Parent_ID int
);
INSERT INTO Child_parent VALUES
(1,2),
(1,3),
(4,5),
(4,6);
예상 결과 :
Child_ID ChildName FatherName MotherName
-----------------------------------------------
1 Ram Suraj Sunitha
4 Deepika Somu Minakshi
내 시도 :
SELECT cp.Child_ID,
f1.Name as ChildName,
CASE WHEN f2.Gender = 'M' THEN f2.Name END FatherName,
CASE WHEN f2.Gender = 'F' THEN f2.Name END MotherName
FROM Child_parent cp
LEFT JOIN Family f1
ON cp.Child_ID = f1.ID
LEFT JOIN Family f2
ON cp.Parent_ID = f2.ID
그러나 점점 resu LT는 보여
Child_ID ChildName FatherName MotherName
----------------------------------------------
1 Ram Suraj NULL
1 Ram NULL Sunitha
4 Deepika NULL Minakshi
4 Deepika Somu NULL