<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=433468&amp;view=findpost&amp;p=3887123</guid>
        <pubDate>Fri, 03 Mar 2023 15:12:37 +0000</pubDate>
        <title>Как сделать, чтобы запрос возвращал у первой категории параметр</title>
        <link>https://forum.sources.ru/index.php?showtopic=433468&amp;view=findpost&amp;p=3887123</link>
        <description><![CDATA[tavocer: Добрый день, имеется запрос<br>
DECLARE @xml1 XML = <br>
(SELECT SKz.Title &#39;Produkt&#39;,<br>
	&#39;true&#39; &#39;category/@primary&#39;, <br>
	(SELECT /*top 1*/ /*&#39;&lt;&#33;[CDATA[&#39;+*/FullTreeNode/*+&#39;]]&gt;&#39;*/ &#39;category&#39; FROM SKz SKz2<br>
	LEFT JOIN (SELECT /*top 1*/ ID, RefAg, RefKat FROM SkRefKat) SkRefKat ON SkRefKat.RefAg=SKz.ID<br>
	LEFT JOIN (SELECT ID, SkKat.FullTreeNode FROM SKKat) SkKat ON SkKat.ID=SkRefKat.RefKat<br>
	WHERE SKz2.ID=SKz.ID <br>
	FOR XML PATH (&#39;&#39;)<br>
	)<br>
FROM SKz<br>
FOR XML PATH (&#39;Item&#39;), TYPE, ELEMENTS, ROOT (&#39;Items&#39;))<br>
/*********************************************************/<br>
DECLARE @str1 as varchar(max)=CAST(@xml1 as nvarchar(max))<br>
SET @str1=Replace(@str1,&#39;&amp;&#39;, &#39;&amp;&#39;)<br>
SET @str1=Replace(@str1,&#39;&lt;&#39;, &#39;&lt;&#39;)<br>
SET @str1=Replace(@str1,&#39;&gt;&#39;, &#39;&gt;&#39;)<br>
SET @xml1=@str1<br>
SELECT @xml1;<br>
<br>
который возвращает<br>
&lt;Items&gt;<br>
  &lt;Item&gt;<br>
    &lt;produkt&gt;TITLE1&lt;/produkt&gt;<br>
    &lt;category primary=&quot;true&quot; /&gt;<br>
    &lt;category&gt;CATEGORY1&lt;/category&gt;<br>
    &lt;category&gt;CATEGORY2&lt;/category&gt;<br>
  &lt;/Item&gt;<br>
  &lt;Item&gt;<br>
    &lt;produkt&gt;TITLE2&lt;/produkt&gt;<br>
    &lt;category primary=&quot;true&quot; /&gt;<br>
    &lt;category&gt;CATEGORY1&lt;/category&gt;<br>
  &lt;/Item&gt;<br>
&lt;/Items&gt;<br>
<br>
Вопрос, как сделать, чтобы запрос возвращал<br>
&lt;Items&gt;<br>
  &lt;Item&gt;<br>
    &lt;title&gt;TITLE1&lt;/title&gt;<br>
    &lt;category primary=&quot;true&quot;&gt;CATEGORY1&lt;/category&gt;<br>
    &lt;category&gt;CATEGORY2&lt;/category&gt;<br>
  &lt;/Item&gt;<br>
  &lt;Item&gt;<br>
    &lt;title&gt;TITLE2&lt;/title&gt;<br>
    &lt;category primary=&quot;true&quot;&gt;CATEGORY1&lt;/category&gt;<br>
  &lt;/Item&gt;<br>
&lt;/Items&gt;<br>
Спасибо за решение <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2023-03-03T18:57:57+03:00">03.03.23, 15:57</time></span></span><br>
SELECT CASE <br>
		WHEN ROW_NUMBER() OVER(ORDER BY Skz.ID) = 1 THEN &#39;true&#39; <br>
		ELSE Null <br>
	END &#39;category/@primary&#39;<br>
<br>
догадался ;)]]></description>
        <author>tavocer</author>
        <category>XML, XSL, XSLT</category>
      </item>
	
      </channel>
      </rss>
	