Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Перенос строки в конструкции FOR XML PATH / 21 сообщений из 21, страница 1 из 1
12.02.2014, 14:39
    #38558510
Degun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос строки в конструкции FOR XML PATH
Есть некоторый код
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
	DECLARE @LetterBody VARCHAR(MAX);
	SET @LetterBody = (SELECT
		 convert(varchar,ClientCode) + ';' +
		 convert(varchar,ClientName) + ';' +
		 convert(varchar,BrokerComis) + ';' +
		 CHAR(13)
		FROM @BrokerComisTable
		FOR XML PATH(''));
	PRINT @LetterBody


Но он выводит строки не по отдельности, а как одну строку:
Код: plaintext
1.
E400001;Иванов Ю.В.;873.54;E400002;Сидоров Г.Ф.;3.96;
Т. е. он символ возврата коретки выводит как последовательность знаков . Как это исправить?
...
Рейтинг: 0 / 0
12.02.2014, 14:42
    #38558514
Degun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос строки в конструкции FOR XML PATH
Здесь редактор из разделил на две строки. Т. е. выводятся следующим образом:
Код: xml
1.
E400001;Иванов Ю.В.;873.54;
E400002;Сидоров Г.Ф.;3.96;
...
Рейтинг: 0 / 0
12.02.2014, 14:44
    #38558518
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос строки в конструкции FOR XML PATH
так правильно
...
Рейтинг: 0 / 0
12.02.2014, 14:48
    #38558527
Degun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос строки в конструкции FOR XML PATH
Вопрос в том, как записать конструкцию запроса, чтобы возврат коретки не трансформировался в последовательность символов
Код: xml
1.
&#x0D
...
Рейтинг: 0 / 0
12.02.2014, 14:48
    #38558530
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос строки в конструкции FOR XML PATH
DegunТ. е. он символ возврата коретки выводит как последовательность знаков
. Как это исправить?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
BOL - Serialization of XML Data
Entitization of XML Characters During Serialization

Following are the entitization rules that apply during serialization:

...


To prevent a carriage return (CR, U+000D) from being normalized during parsing, it is entitized to its numeric character reference, 
 inside both attribute values and element content.
....
...
Рейтинг: 0 / 0
12.02.2014, 14:50
    #38558536
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос строки в конструкции FOR XML PATH
вы же xml юзаете.
заменяйте после получения replace-ом в итоговой строке
...
Рейтинг: 0 / 0
12.02.2014, 14:50
    #38558539
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос строки в конструкции FOR XML PATH
DegunВопрос в том, как записать конструкцию запроса, чтобы возврат коретки не трансформировался в последовательность символов
Не делать xml
...
Рейтинг: 0 / 0
12.02.2014, 15:03
    #38558562
Degun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос строки в конструкции FOR XML PATH
Konst_One
Спасибо. Заменил в строке на CHAR(13).
...
Рейтинг: 0 / 0
12.02.2014, 15:12
    #38558573
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос строки в конструкции FOR XML PATH
DegunВопрос в том, как записать конструкцию запроса, чтобы возврат коретки не трансформировался в последовательность символов
Код: xml
1.
&#x0D

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
declare @s varchar(max);

select
 @s = (
  select
   '1' + char(13) + '2'
  for xml path(''), type).value('.', 'varchar(max)');

print @s;
...
Рейтинг: 0 / 0
12.02.2014, 15:25
    #38558600
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос строки в конструкции FOR XML PATH
Перевод строки - это чаще всего два символа: CHAR(0x0D)+CHAR(0x0A)
Carriage Return & Line Feed - CR & LF
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
04.11.2018, 12:02
    #39727760
AlexUssr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос строки в конструкции FOR XML PATH
добрый день!
Подскажите, пожалуйста, а как в представлении с группировкой с xml получить перенос строки. У меня - результат строка без переноса, а предложенные варианты выдают ошибки неправильного синтаксиса
представление выборки из таблицы test с полями :

txt1 txt2
1 1
1 2



SELECT txt1,
(SELECT txt2 + char(13) + char(10) + ', ' AS 'data()'
FROM dbo.test t2
WHERE txt1 = txt1
FOR xml path(''), type) AS Gruppa
FROM dbo.test t1
GROUP BY txt1


Выдает результат :

1 1 , 2 ,



а мне нужно

1 1 ,
2 ,
...
Рейтинг: 0 / 0
04.11.2018, 12:17
    #39727762
AlexUssr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос строки в конструкции FOR XML PATH
...
Рейтинг: 0 / 0
04.11.2018, 12:20
    #39727763
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос строки в конструкции FOR XML PATH
Выполнить запрос в студии (New Query) и установить Result to text.

Не все редакторы обязаны вам рисовать переносы строки в результатах выполнения.
...
Рейтинг: 0 / 0
04.11.2018, 12:29
    #39727764
AlexUssr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос строки в конструкции FOR XML PATH
Клиент коды переноса показывает, переноса строк не получается.
...
Рейтинг: 0 / 0
04.11.2018, 13:06
    #39727774
AlexUssr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос строки в конструкции FOR XML PATH
Прошу прощенья, я не профессионал, запрос в студии (New Query) тоже не получается, в чем ошибка?
Может быть есть способ группировки по одному полю таблицы со сложением значений другого поля через запятую без использования xml path(''), ... ?
...
Рейтинг: 0 / 0
04.11.2018, 13:06
    #39727776
AlexUssr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос строки в конструкции FOR XML PATH
...
Рейтинг: 0 / 0
04.11.2018, 13:22
    #39727779
AlexUssr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос строки в конструкции FOR XML PATH
Подскажите, пожалуйста, почему этот код не работает, в чем ошибка?
...
Рейтинг: 0 / 0
04.11.2018, 13:25
    #39727780
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос строки в конструкции FOR XML PATH
авторПодскажите, пожалуйста, почему этот код не работает, в чем ошибка?Ошибка в синтаксисе, который вы нафантазировали.
...
Рейтинг: 0 / 0
04.11.2018, 13:28
    #39727782
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос строки в конструкции FOR XML PATH
Код: sql
1.
2.
3.
4.
5.
select
 a.txt1, b.x.value('.', 'varchar(max)')
from
 (select distinct txt1 from dbo.test) a cross apply
 (select txt2 + ',' + char(10) + char(13) from dbo.test where txt1 = a.txt1 for xml path(''), type) b(x);
...
Рейтинг: 0 / 0
04.11.2018, 13:28
    #39727783
AlexUssr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос строки в конструкции FOR XML PATH
Извиняюсь, не ту картинку отправил:
...
Рейтинг: 0 / 0
04.11.2018, 13:34
    #39727786
AlexUssr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перенос строки в конструкции FOR XML PATH
Клиент на этот код магическим образом корректно отреагировал.
Спасибо большое !!!
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Перенос строки в конструкции FOR XML PATH / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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