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;
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
add a comment |
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
add a comment |
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
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
sql-server t-sql
asked 8 hours ago
kevinnwhatkevinnwhat
9871 silver badge10 bronze badges
9871 silver badge10 bronze badges
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
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.
add a comment |
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
add a comment |
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.
add a comment |
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.
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.
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
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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