2012-04-10 93 views
1

我有一個要求,我想要從xml數據類型搜索數據,從前端我會得到名字,姓氏,dob,電子郵件所有字段都不是強制性的某些字段將作爲空或空我想根據,如果我會得到名字爲「測試」和姓氏,我會得到如空白或空XML數據類型的搜索查詢

搜索如果它是一個varchar數據類型的話,我可以創建查詢作爲

FirstName= ISNULL(@firstname, FirstName) or COALESCE(@firstname, FirstName, '') = '') 

但在XML文檔中,我如何使用這種類型的查詢。

xmlDoc.value('(/personalDetails/firstname)[1]','varchar(100)') 

感謝

回答

0

在2008年SQLSERVER,我會寫這樣的:

select 
    xmlDoc.value('(personalDetails/firstname/text())[1]','varchar(100)') as firstname 
from 
    myTable 
where 
    not xmlDoc is null 
    and xmlDoc.exist('personalDetails/firstname[.!='''']')>0 

你也可以做一個CASE WHEN ... ELSE ...如果你想返回NULL END對於不存在的值