1
如何仅使用Xpath从SQL Server中的空XML标记返回null?
我有一个应用程序,可以在XML列中存储有关记录的各种用户定义的数据点。我无法控制如何存储或更新这些内容。 当我查询列时,它可以返回3个值中的1个: 价值 空值 空字符串 $ 64问题我想使用xpath将这些空字符串作为null返回。 我已经找到了很多有关将null作为空字符串返回的答案,但这种方式一无所获。 当有人删除了值时,它们最终以这种方式结束,而不是删除标签,而是将其空白为<value />标签。当从未设置过该值时,将出现空值。他们没有包括xsi:nil。 我已经完成了一个案例声明: select so.SalesOrderId, Case when sopc.value('(Value)[1]','smalldatetime') IS null then Null when sopc.value('(Value)[1]','smalldatetime') ='' then Null Else sopc.value('(Value)[1]','smalldatetime') End as sopc From SalesOrders so Outer apply so.CustomColumns.nodes('/CustomColumnsCollection/CustomColumn[Name="ProjCompleted"]') sopc(sopc) 但这感觉效率低下,并且这不是唯一的专栏,因此使代码更长且更难维护。 编辑以包括样本数据 SalesOrderId CustomColumns SO 1 "<CustomColumnsCollection> <CustomColumn> <Name>ProjCompleted</Name> <DataType>1</DataType> <Value /> </CustomColumn> …