Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server B为空时排除A列的记录_Sql Server - Fatal编程技术网

Sql server B为空时排除A列的记录

Sql server B为空时排除A列的记录,sql-server,Sql Server,需要有关查询的帮助,该查询将允许我在列a中排除一条记录(如果列中存在一条记录,且该记录的值为null) 假设我有两行是A列名为“test”,它们的B列值分别为1和null。下面是我正在处理的一个查询,在我的场景中,对象ID是a列,endversion是B列 select b.PortID, max(endversion)as EndVersion, d.ShortName as RuleName from xr.ObjectPropertyValue a

需要有关查询的帮助,该查询将允许我在列a中排除一条记录(如果列中存在一条记录,且该记录的值为null)

假设我有两行是A列名为“test”,它们的B列值分别为1和null。下面是我正在处理的一个查询,在我的场景中,对象ID是a列,endversion是B列

select b.PortID, 
       max(endversion)as EndVersion, 
       d.ShortName as RuleName 
from xr.ObjectPropertyValue a 
       join moxyportfolio b on a.objectid=b.portkey 
       join xr.AssignAllObjectsRule c on a.Objectclassid=c.ObjectClassID -- can replace with xr.assignobjectrule if it's rule is not assigned to all portfolios.
       join xr.rulebase d on c.RuleID=d.RuleID 
where objectid in (select objectid from xr.objectpropertyvalue where endversion is not null) 
group by a.ObjectId, b.portid,d.ShortName

您可以使用
have

select 
    b.PortID,
    max(endversion) as EndVersion,
    d.ShortName as RuleName 
from xr.ObjectPropertyValue a 
join moxyportfolio b 
    on a.objectid = b.portkey 
join xr.AssignAllObjectsRule c 
    on a.Objectclassid = c.ObjectClassID -- can replace with xr.assignobjectrule if it's rule is not assigned to all portfolios.
join xr.rulebase d 
    on c.RuleID = d.RuleID 
group by a.ObjectId, b.portid, d.ShortName
having sum(case when endversion is null then 1 else 0 end) = 0

仅当列B不为空时才为列A选择值(否则为空):

仅当列B不为null(否则为null)时,才为列a选择一个值:


endversion列是否来自xr.ObjectPropertyValue表?
 SELECT COLA
 FROM TABLE
 WHERE COLB IS NOT NULL
 SELECT CASE WHEN COLB IS NOT NULL THEN COLA ELSE NULL END AS COLA
 FROM TABLE