На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ANDLL
  
> Как сделать, чтобы запрос возвращал у первой категории параметр
    Добрый день, имеется запрос
    DECLARE @xml1 XML =
    (SELECT SKz.Title 'Produkt',
    'true' 'category/@primary',
    (SELECT /*top 1*/ /*'<![CDATA['+*/FullTreeNode/*+']]>'*/ 'category' FROM SKz SKz2
    LEFT JOIN (SELECT /*top 1*/ ID, RefAg, RefKat FROM SkRefKat) SkRefKat ON SkRefKat.RefAg=SKz.ID
    LEFT JOIN (SELECT ID, SkKat.FullTreeNode FROM SKKat) SkKat ON SkKat.ID=SkRefKat.RefKat
    WHERE SKz2.ID=SKz.ID
    FOR XML PATH ('')
    )
    FROM SKz
    FOR XML PATH ('Item'), TYPE, ELEMENTS, ROOT ('Items'))
    /*********************************************************/
    DECLARE @str1 as varchar(max)=CAST(@xml1 as nvarchar(max))
    SET @str1=Replace(@str1,'&', '&')
    SET @str1=Replace(@str1,'<', '<')
    SET @str1=Replace(@str1,'>', '>')
    SET @xml1=@str1
    SELECT @xml1;

    который возвращает
    <Items>
    <Item>
    <produkt>TITLE1</produkt>
    <category primary="true" />
    <category>CATEGORY1</category>
    <category>CATEGORY2</category>
    </Item>
    <Item>
    <produkt>TITLE2</produkt>
    <category primary="true" />
    <category>CATEGORY1</category>
    </Item>
    </Items>

    Вопрос, как сделать, чтобы запрос возвращал
    <Items>
    <Item>
    <title>TITLE1</title>
    <category primary="true">CATEGORY1</category>
    <category>CATEGORY2</category>
    </Item>
    <Item>
    <title>TITLE2</title>
    <category primary="true">CATEGORY1</category>
    </Item>
    </Items>
    Спасибо за решение

    Добавлено
    SELECT CASE
    WHEN ROW_NUMBER() OVER(ORDER BY Skz.ID) = 1 THEN 'true'
    ELSE Null
    END 'category/@primary'

    догадался ;)
    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script execution time: 0,0179 ]   [ 15 queries used ]   [ Generated: 22.07.24, 16:49 GMT ]