1

xml データ型のデータを検索したいという要件があります。フロント エンドから、名、姓、生年月日、電子メールを取得します。すべてのフィールドは必須ではありません。一部のフィールドは空または null になります。ファーストネームを「test」として取得し、ラストネームを空またはnullとして取得する場合

varchar データ型の場合は、次のようにクエリを作成できます

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

しかし、XMLドキュメントでは、このタイプのクエリをどのように使用できますか.

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

ありがとう

4

2 に答える 2

0

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 を実行することもできます

于 2012-04-10T16:17:06.150 に答える