Search code examples
xmlsql-server-2008sqlxml

XML with content between tags


I have SQL

SELECT '' AS "dfn", CCFKeyType AS "dfn/b", GroupID AS "dfn/var",  ID AS "dfn/code"
FROM (
...
) A

FOR XML PATH('')

AND it generates

<dfn>
   <b>cid</b>
   <var>0115</var>
   <code>EXS</code>
</dfn>

I would like to generate:

<dfn>
   <b>cid</b>
   (<var>0115</var>):
   <code>EXS</code>
</dfn>

How can text data be inseted between tags?


Solution

  • SELECT  ''     AS "dfn"    , 
            'cid'  AS "dfn/b"  ,
            '('    AS "dfn"    ,
            '0115' AS "dfn/var",
            '):'   AS "dfn"    ,
            'EXS'  AS "dfn/code"
    FOR XML PATH('')
    

    Output:

    <dfn>
        <b>cid</b>
        (<var>0115</var>):
        <code>EXS</code>
    </dfn>