for xml path('') outputSSIS File System Task Copy File Could not find part of the path errorSql Server 2012 Extended Events for Selective Xml Indexing not showing resultsXML Whitespaces/Unwanted CharactersSSIS Package fails to “Transform File and create output file”How to extract xml attribute from a column?Very strange performance with an XML indexHelp with SQL Server and XML columnsHow Plan Explorer Group Operators in Query Columns Tabsp_whoisactive @get_locks parameter xml errorXML Query Question

Is it okay to fade a human face just to create some space to place important content over it?

When Chaos Bolt leaps, do you determine a new damage type?

"Vector quantity" --More than two dimensions?

Why were the first airplanes "backwards"?

Converting Geographic Coordinates into Lambert2008 coordinates

Bin Packing with Relational Penalization

Can a nowhere continuous function have a connected graph?

How to securely dispose of a smartphone?

Who are these Discworld wizards from this picture?

How could a satellite follow earth around the sun while staying outside of earth's orbit?

Is it possible to have a character with proficiency in all martial weapons without proficiency in Medium armor?

Does a return economy-class seat between London and San Francisco release 5.28 tonnes of CO2 equivalents?

Find the radius of the hoop.

Most elegant way to write a one-shot 'if'

How do I ensure my employees don't abuse my flexible work hours policy?

Grant dbcreator only for databases matching prefix

Is Cyclic Ether oxidised by periodic acid

Different budgets within roommate group

Thin wall to block LED light from hitting photodiode?

Is it okay to submit a paper from a master's thesis without informing the advisor?

Movie with Zoltar in a trailer park named Paradise and a boy playing a video game then being recruited by aliens to fight in space

Company threatening to call my current job after I declined their offer

Are gliders susceptible to bird strikes?

Security Patch SUPEE-11155 - Possible issues?



for xml path('') output


SSIS File System Task Copy File Could not find part of the path errorSql Server 2012 Extended Events for Selective Xml Indexing not showing resultsXML Whitespaces/Unwanted CharactersSSIS Package fails to “Transform File and create output file”How to extract xml attribute from a column?Very strange performance with an XML indexHelp with SQL Server and XML columnsHow Plan Explorer Group Operators in Query Columns Tabsp_whoisactive @get_locks parameter xml errorXML Query Question






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








4















When I run the following



select t.type
from (values ('Green'),('Blue'),('Red')) as t(type)
for xml path('')


I receive this output



<type>Green</type>
<type>Blue</type>
<type>Red</type>


If I run the following



select t.type + '/'
from (values ('Green'),('Blue'),('Red')) as t(type)
for xml path('')


I receive this output



Green/Blue/Red/


Why does adding the concatenation in the select lead to the removal of the type tags and output on one line in the xml file? Running SQL Server 2012.










share|improve this question




























    4















    When I run the following



    select t.type
    from (values ('Green'),('Blue'),('Red')) as t(type)
    for xml path('')


    I receive this output



    <type>Green</type>
    <type>Blue</type>
    <type>Red</type>


    If I run the following



    select t.type + '/'
    from (values ('Green'),('Blue'),('Red')) as t(type)
    for xml path('')


    I receive this output



    Green/Blue/Red/


    Why does adding the concatenation in the select lead to the removal of the type tags and output on one line in the xml file? Running SQL Server 2012.










    share|improve this question
























      4












      4








      4








      When I run the following



      select t.type
      from (values ('Green'),('Blue'),('Red')) as t(type)
      for xml path('')


      I receive this output



      <type>Green</type>
      <type>Blue</type>
      <type>Red</type>


      If I run the following



      select t.type + '/'
      from (values ('Green'),('Blue'),('Red')) as t(type)
      for xml path('')


      I receive this output



      Green/Blue/Red/


      Why does adding the concatenation in the select lead to the removal of the type tags and output on one line in the xml file? Running SQL Server 2012.










      share|improve this question














      When I run the following



      select t.type
      from (values ('Green'),('Blue'),('Red')) as t(type)
      for xml path('')


      I receive this output



      <type>Green</type>
      <type>Blue</type>
      <type>Red</type>


      If I run the following



      select t.type + '/'
      from (values ('Green'),('Blue'),('Red')) as t(type)
      for xml path('')


      I receive this output



      Green/Blue/Red/


      Why does adding the concatenation in the select lead to the removal of the type tags and output on one line in the xml file? Running SQL Server 2012.







      sql-server t-sql






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 8 hours ago









      kevinnwhatkevinnwhat

      9871 silver badge10 bronze badges




      9871 silver badge10 bronze badges




















          1 Answer
          1






          active

          oldest

          votes


















          5














          XML is bonkers



          When you add the concatenated string, you lose the "path element".



          For example if you do this:



          SELECT t.type + '/' AS type
          FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
          FOR XML PATH('');

          SELECT t.type + '/'
          FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
          FOR XML PATH('type');


          You get this back:



          <type>Green/</type>
          <type>Blue/</type>
          <type>Red/</type>


          The column name or alias acts as the path element.



          Some other examples that might help



          Using RAW, ELEMENTS



          SELECT t.type + '/'
          FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
          FOR XML RAW, ELEMENTS;

          SELECT t.type + '/' AS type
          FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
          FOR XML RAW, ELEMENTS;


          In the first example, you get the generic "row" element name, but in the second you get row/type.



          When using RAW, TYPE:



          SELECT t.type + '/' AS type
          FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
          FOR XML RAW, TYPE;

          SELECT t.type + '/'
          FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
          FOR XML RAW, TYPE;


          The first query returns valid-ish XML, the second throws an error because the path element lacks an identifier.



          Using AUTO, the table alias and column name turns into the path:



          SELECT type + '/' AS type
          FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
          FOR XML AUTO;

          SELECT type
          FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
          FOR XML AUTO;


          But without an alias, you get a similar error:



          SELECT type + '/'
          FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
          FOR XML AUTO;


          I'd gin up an example with FOR XML EXPLICIT but it would be irresponsible for me to start drinking right now.






          share|improve this answer



























            Your Answer








            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "182"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f241485%2ffor-xml-path-output%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            5














            XML is bonkers



            When you add the concatenated string, you lose the "path element".



            For example if you do this:



            SELECT t.type + '/' AS type
            FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
            FOR XML PATH('');

            SELECT t.type + '/'
            FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
            FOR XML PATH('type');


            You get this back:



            <type>Green/</type>
            <type>Blue/</type>
            <type>Red/</type>


            The column name or alias acts as the path element.



            Some other examples that might help



            Using RAW, ELEMENTS



            SELECT t.type + '/'
            FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
            FOR XML RAW, ELEMENTS;

            SELECT t.type + '/' AS type
            FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
            FOR XML RAW, ELEMENTS;


            In the first example, you get the generic "row" element name, but in the second you get row/type.



            When using RAW, TYPE:



            SELECT t.type + '/' AS type
            FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
            FOR XML RAW, TYPE;

            SELECT t.type + '/'
            FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
            FOR XML RAW, TYPE;


            The first query returns valid-ish XML, the second throws an error because the path element lacks an identifier.



            Using AUTO, the table alias and column name turns into the path:



            SELECT type + '/' AS type
            FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
            FOR XML AUTO;

            SELECT type
            FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
            FOR XML AUTO;


            But without an alias, you get a similar error:



            SELECT type + '/'
            FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
            FOR XML AUTO;


            I'd gin up an example with FOR XML EXPLICIT but it would be irresponsible for me to start drinking right now.






            share|improve this answer





























              5














              XML is bonkers



              When you add the concatenated string, you lose the "path element".



              For example if you do this:



              SELECT t.type + '/' AS type
              FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
              FOR XML PATH('');

              SELECT t.type + '/'
              FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
              FOR XML PATH('type');


              You get this back:



              <type>Green/</type>
              <type>Blue/</type>
              <type>Red/</type>


              The column name or alias acts as the path element.



              Some other examples that might help



              Using RAW, ELEMENTS



              SELECT t.type + '/'
              FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
              FOR XML RAW, ELEMENTS;

              SELECT t.type + '/' AS type
              FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
              FOR XML RAW, ELEMENTS;


              In the first example, you get the generic "row" element name, but in the second you get row/type.



              When using RAW, TYPE:



              SELECT t.type + '/' AS type
              FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
              FOR XML RAW, TYPE;

              SELECT t.type + '/'
              FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
              FOR XML RAW, TYPE;


              The first query returns valid-ish XML, the second throws an error because the path element lacks an identifier.



              Using AUTO, the table alias and column name turns into the path:



              SELECT type + '/' AS type
              FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
              FOR XML AUTO;

              SELECT type
              FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
              FOR XML AUTO;


              But without an alias, you get a similar error:



              SELECT type + '/'
              FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
              FOR XML AUTO;


              I'd gin up an example with FOR XML EXPLICIT but it would be irresponsible for me to start drinking right now.






              share|improve this answer



























                5












                5








                5







                XML is bonkers



                When you add the concatenated string, you lose the "path element".



                For example if you do this:



                SELECT t.type + '/' AS type
                FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
                FOR XML PATH('');

                SELECT t.type + '/'
                FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
                FOR XML PATH('type');


                You get this back:



                <type>Green/</type>
                <type>Blue/</type>
                <type>Red/</type>


                The column name or alias acts as the path element.



                Some other examples that might help



                Using RAW, ELEMENTS



                SELECT t.type + '/'
                FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
                FOR XML RAW, ELEMENTS;

                SELECT t.type + '/' AS type
                FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
                FOR XML RAW, ELEMENTS;


                In the first example, you get the generic "row" element name, but in the second you get row/type.



                When using RAW, TYPE:



                SELECT t.type + '/' AS type
                FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
                FOR XML RAW, TYPE;

                SELECT t.type + '/'
                FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
                FOR XML RAW, TYPE;


                The first query returns valid-ish XML, the second throws an error because the path element lacks an identifier.



                Using AUTO, the table alias and column name turns into the path:



                SELECT type + '/' AS type
                FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
                FOR XML AUTO;

                SELECT type
                FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
                FOR XML AUTO;


                But without an alias, you get a similar error:



                SELECT type + '/'
                FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
                FOR XML AUTO;


                I'd gin up an example with FOR XML EXPLICIT but it would be irresponsible for me to start drinking right now.






                share|improve this answer















                XML is bonkers



                When you add the concatenated string, you lose the "path element".



                For example if you do this:



                SELECT t.type + '/' AS type
                FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
                FOR XML PATH('');

                SELECT t.type + '/'
                FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
                FOR XML PATH('type');


                You get this back:



                <type>Green/</type>
                <type>Blue/</type>
                <type>Red/</type>


                The column name or alias acts as the path element.



                Some other examples that might help



                Using RAW, ELEMENTS



                SELECT t.type + '/'
                FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
                FOR XML RAW, ELEMENTS;

                SELECT t.type + '/' AS type
                FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
                FOR XML RAW, ELEMENTS;


                In the first example, you get the generic "row" element name, but in the second you get row/type.



                When using RAW, TYPE:



                SELECT t.type + '/' AS type
                FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
                FOR XML RAW, TYPE;

                SELECT t.type + '/'
                FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
                FOR XML RAW, TYPE;


                The first query returns valid-ish XML, the second throws an error because the path element lacks an identifier.



                Using AUTO, the table alias and column name turns into the path:



                SELECT type + '/' AS type
                FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
                FOR XML AUTO;

                SELECT type
                FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
                FOR XML AUTO;


                But without an alias, you get a similar error:



                SELECT type + '/'
                FROM ( VALUES ( 'Green' ), ( 'Blue' ), ( 'Red' )) AS t ( type )
                FOR XML AUTO;


                I'd gin up an example with FOR XML EXPLICIT but it would be irresponsible for me to start drinking right now.







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited 7 hours ago

























                answered 8 hours ago









                Erik DarlingErik Darling

                24.9k13 gold badges76 silver badges125 bronze badges




                24.9k13 gold badges76 silver badges125 bronze badges



























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Database Administrators Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f241485%2ffor-xml-path-output%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Invision Community Contents History See also References External links Navigation menuProprietaryinvisioncommunity.comIPS Community ForumsIPS Community Forumsthis blog entry"License Changes, IP.Board 3.4, and the Future""Interview -- Matt Mecham of Ibforums""CEO Invision Power Board, Matt Mecham Is a Liar, Thief!"IPB License Explanation 1.3, 1.3.1, 2.0, and 2.1ArchivedSecurity Fixes, Updates And Enhancements For IPB 1.3.1Archived"New Demo Accounts - Invision Power Services"the original"New Default Skin"the original"Invision Power Board 3.0.0 and Applications Released"the original"Archived copy"the original"Perpetual licenses being done away with""Release Notes - Invision Power Services""Introducing: IPS Community Suite 4!"Invision Community Release Notes

                    Canceling a color specificationRandomly assigning color to Graphics3D objects?Default color for Filling in Mathematica 9Coloring specific elements of sets with a prime modified order in an array plotHow to pick a color differing significantly from the colors already in a given color list?Detection of the text colorColor numbers based on their valueCan color schemes for use with ColorData include opacity specification?My dynamic color schemes

                    Ласкавець круглолистий Зміст Опис | Поширення | Галерея | Примітки | Посилання | Навігаційне меню58171138361-22960890446Bupleurum rotundifoliumEuro+Med PlantbasePlants of the World Online — Kew ScienceGermplasm Resources Information Network (GRIN)Ласкавецькн. VI : Літери Ком — Левиправивши або дописавши її