for xml path('') outputSSIS File System Task Copy File Could not find part of the path errorSql Server 2012...

How did researchers find articles before the Internet and the computer era?

Is there reliable evidence that depleted uranium from the 1999 NATO bombing is causing cancer in Serbia?

How do I tell the reader that my character is autistic in Fantasy?

How to properly say asset/assets in German

Divergent Series & Continued Fraction (from Gauss' Mathematical Diary)

Why wasn't ASCII designed with a contiguous alphanumeric character order?

How receiver knows the exact frequency in the channel to "listen to"?

Do the 26 richest billionaires own as much wealth as the poorest 3.8 billion people?

Closest Proximity of Oceans to Freshwater Springs

I hit a pipe with a mower and now it won't turn

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

How do I organize members in a struct to waste the least space on alignment?

How to unit test methods which using static methods?

Sacrifice blocking creature before damage is dealt no longer working (MtG Arena)?

How do I present a future free of gender stereotypes without being jarring or overpowering the narrative?

Most important new papers in computational complexity

Reusable spacecraft: why still have fairings detach, instead of open/close?

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

Copy group of files (Filename*) to backup (Filename*.bak)

How can a valley surrounded by mountains be fertile and rainy?

How is this practical and very old scene shot?

Can a nowhere continuous function have a connected graph?

Why would anyone even use a Portkey?

Are gliders susceptible to bird strikes?



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 9 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 8 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

                    Taj Mahal Inhaltsverzeichnis Aufbau | Geschichte | 350-Jahr-Feier | Heutige Bedeutung | Siehe auch |...

                    Baia Sprie Cuprins Etimologie | Istorie | Demografie | Politică și administrație | Arii naturale...

                    Nicolae Petrescu-Găină Cuprins Biografie | Opera | In memoriam | Varia | Controverse, incertitudini...