এক্সএমএল পাথ ('') আউটপুট জন্য


9

আমি যখন নিম্নলিখিত চালাতে

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

আমি এই আউটপুট গ্রহণ

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

আমি যদি নিম্নলিখিত চালাতে

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

আমি এই আউটপুট গ্রহণ

Green/Blue/Red/

কেন সিএমএল ফাইলের এক লাইনে টাইপ ট্যাগ এবং আউটপুট সরানোর জন্য বাছাই করে নেতৃত্ব যুক্ত করে? এসকিউএল সার্ভার ২০১২ চলছে।

উত্তর:


15

এক্সএমএল হল kers

যখন আপনি সংক্ষিপ্ত স্ট্রিং যুক্ত করবেন, আপনি "পথ উপাদান" হারাবেন।

উদাহরণস্বরূপ আপনি যদি এটি করেন:

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');

আপনি এটি ফিরে পেতে:

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

কলামের নাম বা উপনাম পথ উপাদান হিসাবে কাজ করে।

আরও কিছু উদাহরণ যা সাহায্য করতে পারে

ব্যবহার 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;

প্রথম উদাহরণে, আপনি জেনেরিক "সারি" উপাদানটির নাম পান তবে দ্বিতীয়টিতে আপনি সারি / টাইপ পান।

ব্যবহার করার সময় 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;

প্রথম ক্যোয়ারীটি বৈধ-ইশ এক্সএমএল ফেরত দেয়, দ্বিতীয়টি ত্রুটি ছুড়ে দেয় কারণ পাথ উপাদানটির একটি সনাক্তকারী নেই।

ব্যবহার করে AUTO, টেবিলের নাম এবং কলামের নামটি পথে পরিণত হয়:

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;

তবে কোনও নাম না থাকলেও আপনি একই রকম ত্রুটি পান:

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

আমি এর সাথে একটি উদাহরণ উপস্থাপন করব FOR XML EXPLICITতবে এখনই মদ্যপান শুরু করা আমার পক্ষে দায়িত্বজ্ঞানহীন হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.