我有一个要求,我想搜索 xml 数据类型的数据,从前端我会得到名字,姓氏,出生日期,电子邮件所有字段都不是强制性的,有些字段会显示为空或 null 我想根据该搜索,如果我将名字作为“测试”,将姓氏作为空或空
如果它是 varchar 数据类型,那么我可以将查询创建为
FirstName= ISNULL(@firstname, FirstName) or COALESCE(@firstname, FirstName, '') = '')
但在 XML 文档中我如何使用这种类型的查询。
xmlDoc.value('(/personalDetails/firstname)[1]','varchar(100)')
谢谢
最佳答案
在 SQLServer 2008 中,我会这样写:
select
xmlDoc.value('(personalDetails/firstname/text())[1]','varchar(100)') as firstname
from
myTable
where
not xmlDoc is null
and xmlDoc.exist('personalDetails/firstname[.!='''']')>0
如果您想为不存在的值返回 NULL,您也可以执行 CASE WHEN ... ELSE ... END
关于mysql - XML 数据类型的搜索查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10087016/