SQL Server xQuery返回NULL而不是空值

3
在这个例子中,我试图将element2和element3的空nvarchar返回为NULL。我似乎找不到任何答案,也不知道是否可能实现。我知道可以使用Case/When的nullif检查.exists(),但出于性能考虑,我宁愿不进行该检查。
WqlEventQuery查询 = new WqlEventQuery();
查询.EventClassName = "__InstanceCreationEvent";
查询.Condition = "TargetInstance ISA 'Win32_NTLogEvent'";
查询.GroupWithinInterval = new TimeSpan(0, 0, 10);
System.Collections.Specialized.StringCollection集合 =
    new System.Collections.Specialized.StringCollection();
集合.Add("TargetInstance.SourceName");
查询.GroupByPropertyList = 集合;
查询.HavingCondition = "NumberOfEvents > 25";

1
不确定SQL Server在这里扮演什么角色,因为代码与WMI相关。 - MartW
1个回答

5
我不确定您的问题所涉及的语言是什么,但SQL Server有一个NullIf(val, CheckValue)函数。如果您可以在传递给服务器的SQL中包含它,那么应该就可以解决问题。
   Select NullIf(element2, '') 

如果element2等于空字符串(''),则返回null。


我没有听说过NullIf,但它似乎具有与isNull相同的功能。 - Sonny Boy
这很好用,因为如果不匹配,它会返回xquery的值而不是null。太棒了,我排除了nullif。 - SamuelWarren
3
@Sonny Boy,“IsNull(a, b)”会在a为空时返回b,“NullIf(a, b)”会在a等于b时返回空值。 - Charles Bretana

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接