#sql #xml #tsql
#sql #xml #tsql
Вопрос:
Я выбираю данные из таблицы в формате xml. Я использовал для этого xml-путь, и мне это удалось. Но в xml мне также нужно добавить один раздел с именем return as dummy, который будет использоваться позже. У меня также есть запрос выбора, чтобы получить раздел возврата в виде xml. Но теперь мне нужно объединить оба этих запроса выбора, чтобы получить единый xml.
Мой код
SELECT
CAST(IDNO AS VARCHAR(8)) AS [IDNO]
,CAST(Code AS VARCHAR(4)) AS [CODE]
,CAST(Amt AS VARCHAR(18)) AS [Amt]
FROM tbl1
FOR XML PATH('ITEM'), ROOT('Table1'), TYPE
SELECT
'' AS INAME
,'' AS UNQ_ID
,'' AS STATUS
FOR XML PATH('IT_RETURN')
пожалуйста, посоветуйте мне.
Редактировать: мой ожидаемый результат
<Table1>
<ITEM>
<IDNO>0283883</IDNO>
<CODE>ABC</CODE>
<Amt>20</Amt>
</ITEM>
<ITEM>
<IDNO>0374747</IDNO>
<CODE>DHF</CODE>
<Amt>10</Amt>
</ITEM>
</Table1>
<IT_RETURN>
<INAME></INAME>
<UNQ_ID></UNQ_ID>
<STATUS></STATUS>
</IT_RETURN>
Ответ №1:
Следующее поможет вам:
DECLARE @tbl1 TABLE (
IDNO VARCHAR(8),
Code VARCHAR(4),
Amt VARCHAR(18)
)
INSERT INTO
@tbl1
VALUES
( '0283883', 'ABC', '20' ),
( '0374747', 'DHF', '10' )
SELECT (
SELECT
CAST(IDNO AS VARCHAR(8)) AS [IDNO],
CAST(Code AS VARCHAR(4)) AS [CODE],
CAST(Amt AS VARCHAR(18)) AS [Amt]
FROM
@tbl1
FOR XML PATH('ITEM'), ROOT('Table1'), TYPE
), (
SELECT
'' AS INAME
,'' AS UNQ_ID
,'' AS STATUS
FOR XML PATH('IT_RETURN'), TYPE
) FOR XML PATH('')
Комментарии:
1. Я рад, что это помогло =)
Ответ №2:
Используйте приведенный ниже запрос:
SELECT IDNO
,CODE
,Amt
FROM
(
SELECT
CAST('56' AS VARCHAR(8)) AS [IDNO]
,CAST('44' AS VARCHAR(4)) AS [CODE]
,CAST('33434' AS VARCHAR(18)) AS [Amt]
FROM tbl1
UNION ALL
SELECT
'' --AS INAME
,'' --AS UNQ_ID
,'' --AS STATUS
) t
FOR XML PATH('ITEM'), ROOT('Table1'), TYPE