powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как избежать кодировки символов при использовании "FOR XML PATH" без функции REPLACE
3 сообщений из 3, страница 1 из 1
Как избежать кодировки символов при использовании "FOR XML PATH" без функции REPLACE
    #40116263
Luna17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Использование FOR XML PATH кодирует HTML, делая гиперссылки бесполезными.
Я вижу, что другие используют метод VALUE для предотвращения кодирования. Но это убирает нужную мне структуру таблицы.
И мне бы не хотелось использовать функцию REPLACE

SQL Server 2016

авторCREATE TABLE #History (UserID int, UserName Varchar(20), CountryName Varchar(2))
Insert into #History
Values(1,'Ann', 'GB'),
(2,'Jason', 'DE'),
(3,'Mary', 'PT')

select * from #History

DECLARE @Values NVARCHAR(MAX)
SELECT @Values = CAST((SELECT '<a href="https://backend.com/User/UserDetails.aspx?UserID='
++ CAST(UserId AS varchar(150)) ++ '">'
++ CAST(UserID AS varchar(150)) ++ '</a>' AS 'td','',UserName AS 'td','',CountryName AS 'td',''
FROM #History
FOR XML PATH('tr'), ELEMENTS ) AS NVARCHAR(MAX))
SELECT @Values



Результат, который я ожидаю получить

автор <td>
<a href="https://backend.com/User/UserDetails.aspx?UserID=1">1</a>
</td>
<td>Ann</td>
<td>GB</td>
</tr>
<tr>
<td>
<a href="https://backend.com/User/UserDetails.aspx?UserID=2">2</a>
</td>
<td>Jason</td>
<td>DE</td>
</tr>
<tr>
<td>
<a href="https://backend.com/User/UserDetails.aspx?UserID=3">3</a>
</td>
<td>Mary</td>
<td>PT</td>
</tr>
...
Рейтинг: 0 / 0
Как избежать кодировки символов при использовании "FOR XML PATH" без функции REPLACE
    #40116271
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Luna17,

Код: sql
1.
2.
3.
4.
5.
6.
7.
DECLARE @Values NVARCHAR(MAX)
SELECT @Values = CAST((SELECT CAST('<a href="https://backend.com/User/UserDetails.aspx?UserID='
++ CAST(UserId AS varchar(150)) ++ '">'
++ CAST(UserID AS varchar(150)) ++ '</a>' AS XML) AS 'td','',UserName AS 'td','',CountryName AS 'td',''
FROM #History
FOR XML PATH('tr'), ELEMENTS ) AS NVARCHAR(MAX))
SELECT @Values
...
Рейтинг: 0 / 0
Как избежать кодировки символов при использовании "FOR XML PATH" без функции REPLACE
    #40116281
Luna17
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосов,
Спасибо!!!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как избежать кодировки символов при использовании "FOR XML PATH" без функции REPLACE
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]