Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Запрос for xml path. Спецсимволы.  [new]
user89
Member

Откуда:
Сообщений: 2083
Здравствуйте! Есть столбец в таблице примерно такого содержания
qq
Q1
NULL

Требуется получить строку
<td>Q1</td><td>&#160;&#160;</td>
Здесь NULL надо заменить на два неразрывных пробела.

Сделал так
declare @t table(qq varchar(2))
insert @t select 'Q1' union all select null
select * from @t

select (select '<td>' + isnull(qq,'&#160;&#160;') + '</td>' from @t
for xml path(''), type).value('text()[1]','varchar(max)')
но на выходе получается
<td>Q1</td><td>&#</td>

SQL 2008
22 май 13, 15:59    [14333948]     Ответить | Цитировать Сообщить модератору
 Re: Запрос for xml path. Спецсимволы.  [new]
Гость333
Member

Откуда:
Сообщений: 3683
user89
Сделал так
declare @t table(qq varchar(2))
но на выходе получается
<td>Q1</td><td>&#</td>

SQL 2008

Немудрено, сделайте как минимум varchar(12).
22 май 13, 16:03    [14333977]     Ответить | Цитировать Сообщить модератору
 Re: Запрос for xml path. Спецсимволы.  [new]
user89
Member

Откуда:
Сообщений: 2083
Гость333,

точно! Поменял, всё работает. Спасибо!
22 май 13, 16:05    [14333997]     Ответить | Цитировать Сообщить модератору
 Re: Запрос for xml path. Спецсимволы.  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Гость333
Немудрено, сделайте как минимум varchar(12).

Или замените isnull на coalesce.
22 май 13, 16:05    [14334001]     Ответить | Цитировать Сообщить модератору
 Re: Запрос for xml path. Спецсимволы.  [new]
user89
Member

Откуда:
Сообщений: 2083
Гость333,

Вариант с coalesce и varchar(2) тоже отработал! Класс!
22 май 13, 16:09    [14334037]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить