一两条SQL case语句
我有一个一两条SQL case语句,sql,case,Sql,Case,我有一个SELECT语句,用于提取这两个不同的产品条。当我从网站上删除其中一个并重新运行我的语句时,我仍然有两行,第一列有ARMCODE两次(两个结果),第二列有第一列的说明,但第二列没有说明(因为它已被删除) 问题是它仍然在SQL studio中使用ARMCODE显示两个结果 如果有一个a.code,a.strips从需要显示的入口,如果有一个a.ARMCODE和B.DESCRIPTION需要显示。如果只有A.ARMCODE和B.DESCRIPTION而另一个已被删除,为什么它仍然显示两个结果
SELECT
语句,用于提取这两个不同的产品条。当我从网站上删除其中一个并重新运行我的语句时,我仍然有两行,第一列有ARMCODE
两次(两个结果),第二列有第一列的说明,但第二列没有说明(因为它已被删除)
问题是它仍然在SQL studio中使用ARMCODE
显示两个结果
如果有一个a.code
,a.strips
从需要显示的入口,如果有一个a.ARMCODE
和B.DESCRIPTION
需要显示。如果只有A.ARMCODE
和B.DESCRIPTION
而另一个已被删除,为什么它仍然显示两个结果,其中A.code\u
是第二个结果,而空的A
select a.ARMCODE,
b.DESCRIPTION_
from ARE.AAS.REORDER a
left outer join ARE.AAS.PTDME b on a.PTCODE=b.CODE_
where a.ARMCODE = 'ADSMANZS03'
and b.MEDICAREID ='A4253'
union all
select a.CODE_,a.strips
from event.dbo.intake a
where a.CODE_ = 'ADSMANZS03'
我从一个使用case的新语句开始,现在使用一些嵌套联接:
select case when b.ARMCODE is null then a.strips
end
from (select *
from ev.dbo.intake a
where a.CODE_ = 'ADSMANZS03') a
left outer join(select a.ARMCODE,
b.DESCRIPTION_
from ARE.AAS.REORDER a
left outer join ARE.AAS.PTDME b on a.PTCODE=b.CODE_
where a.ARMCODE = 'ADSMANZS03'
and b.MEDICAREID ='A4253') b on a.CODE_=b.ARMCODE
我没有得到任何行或列,它返回(没有列名)并且内部为空
希望不要太混乱。提前谢谢
图1同一患者的两种不同产品的条带和说明
图像2当我删除条带时,仍然显示两个结果且描述为空,不应显示第二个结果
图3案例陈述仅供参考,以便结束此问题。我用凝聚来决定我需要什么
select
coalesce(b.DESCRIPTION_,a.strips)
from(
select
*
from ev.dbo.intake a
where a.CODE_ = 'ADSMANZS03'
)a
left outer join(
select
a.ARMCODE,
b.DESCRIPTION_
from ARE.AAS.REORDER a
left outer join ARE.AAS.PTDME b on a.PTCODE=b.CODE_
where a.ARMCODE = 'ADSMANZS03'
and b.MEDICAREID ='A4253'
)b on a.CODE_=b.ARMCODE
合并(Transact-SQL)
如果b.armcode为空,则a.strips ELSE(某物)endStrips和Description在两个不同的表中是相同的。如果患者有一个条形产品和说明,则应同时显示或全部显示(无论有多少),如果患者只有条形产品,则不应仅显示患者id和条形图。我已经阅读了您的问题两次,但不太明白。你能用示例数据澄清一下吗,或者看看你是否能在上面重现它?我将发布返回数据的图片,感谢你跟我一起关注。更新,如果有多个,则显示全部,或者如果只有一个表填充了数据,则仅显示一个或另一个。也许我应该使用isnull语句?我想一个案例陈述可能会更好。如果一开始这个问题让人困惑,我很抱歉。