SQL Server xQuery 返回 NULL 而不是空

Sam*_*ren 3 .net wmi xquery

因此,在此示例中,我尝试为 element2 和 element3 返回 NULL 而不是空 nvarchar。我似乎无法在任何地方找到这个问题的答案,或者是否有可能。我知道我可以使用 Case/When 的 nullif 检查 .exists() ,但为了性能我宁愿不进行该检查。

WqlEventQuery 查询 = new WqlEventQuery();
        query.EventClassName = "__InstanceCreationEvent";
        query.Condition = "TargetInstance ISA 'Win32_NTLogEvent'";
        query.GroupWithinInterval = new TimeSpan(0, 0, 10);
        System.Collections.Specialized.StringCollection 集合 =
            新的 System.Collections.Specialized.StringCollection();
        Collection.Add("TargetInstance.SourceName");
        query.GroupByPropertyList = 集合;
        query.HavingCondition = "NumberOfEvents > 25";

Cha*_*ana 5

我不确定你的问题是用什么语言编写的,但 SQL Server 有一个NullIf(val, CheckValue)函数。如果您可以将其包含在传递给服务器的 sql 中,则应该可以实现这一点:

   Select NullIf(element2, '') 
Run Code Online (Sandbox Code Playgroud)

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

  • @Sonny Boy,如果 a 为 null,则 IsNull(a, b) 返回 b,如果 a = b,则 NullIf(a, b) 返回 Null (3认同)