27,579
社区成员
发帖
与我相关
我的任务
分享
select A.ID,A.Name,
case when
B.age=='' then '没有年龄'
else '有年龄'
end as result
from @t A
inner join @c B ON B.id=A.id
select * from @t a
cross apply (select top 1 (case when datalength(age)>0 then '有年龄:'+age else '无年龄' end) as result from @c where id=a.id order by childid desc) app
DECLARE @t TABLE (id INT PRIMARY KEY, Name NVARCHAR(20))
INSERT INTO @t VALUES (1,'王五')
INSERT INTO @t VALUES (2,'王二')
DECLARE @c TABLE (childid INT PRIMARY KEY,id int, age NVARCHAR(20))
INSERT INTO @c VALUES (1,1,'3')
INSERT INTO @c VALUES (2,1,'')
INSERT INTO @c VALUES (3,2,'2')
SELECT [@t].id ,
Name ,
CASE WHEN c.age <>0 THEN '有年龄'
ELSE '没有年龄'
END AS result
FROM @t
JOIN ( SELECT * ,
ROW_NUMBER() OVER ( PARTITION BY id ORDER BY childid DESC ) AS num
FROM @c
) c ON c.id = [@t].id
AND c.num = 1