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;
}
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 9 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 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
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