Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Есть ли какой нибудь другой способ кроме cross apply string_split / 3 сообщений из 3, страница 1 из 1
18.07.2020, 04:09
    #39981187
Gluker
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли какой нибудь другой способ кроме cross apply string_split
В запросе создаю таблицу
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE TABLE O1
(nz INT, data date,nzad int,otvet nvarchar(500))

INSERT INTO O1
select nz,data,nzad,otvet=RTRIM(LTRIM(replace(replace(Replace(Replace(zko,'+','1'),'-','0'), '1', '1 '), '0', '0 ')))
from main Cross join (Values (1), (2), (3), (4), (5), (6), (7), (8), (9), (10),
(11), (12), (13), (14), (15), (16), (17), (18), (19), (20),
(21), (22), (23)) t(nzad)
SELECT nz,data,nzad,otvet FROM O1



в результате получаю такую таблицу

nz data nzad otvet1 2019-06-13 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 01 2019-06-13 2 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 01 2019-06-13 3 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 01 2019-06-13 4 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 01 2019-06-13 5 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 01 2019-06-13 6 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 01 2019-06-13 7 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 01 2019-06-13 8 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 01 2019-06-13 9 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 01 2019-06-13 10 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 01 2019-06-13 11 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 01 2019-06-13 12 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 01 2019-06-13 13 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 01 2019-06-13 14 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 01 2019-06-13 15 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 01 2019-06-13 16 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 01 2019-06-13 17 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 01 2019-06-13 18 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 01 2019-06-13 19 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 01 2019-06-13 20 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 01 2019-06-13 21 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 01 2019-06-13 22 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 01 2019-06-13 23 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 0 1 0 1 0 1 02 2019-06-13 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 12 2019-06-13 2 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 12 2019-06-13 3 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 12 2019-06-13 4 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 12 2019-06-13 5 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 12 2019-06-13 6 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 12 2019-06-13 7 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 12 2019-06-13 8 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 12 2019-06-13 9 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 12 2019-06-13 10 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 12 2019-06-13 11 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 12 2019-06-13 12 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 12 2019-06-13 13 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 12 2019-06-13 14 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 12 2019-06-13 15 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 12 2019-06-13 16 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 12 2019-06-13 17 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 12 2019-06-13 18 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 12 2019-06-13 19 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 12 2019-06-13 20 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 12 2019-06-13 21 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 12 2019-06-13 22 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 12 2019-06-13 23 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1


p.s. там дальше еще строки. первые 3 столбца и количество записей правильна и равна 4853.
В идеале должно получиться так

nz data nzad. otvet1 2019-06-13 1 11 2019-06-13 2 11 2019-06-13 3 1 1 2019-06-13 4 1 1 2019-06-13 5 01 2019-06-13 6 1 1 2019-06-13 7 1 1 2019-06-13 8 1 1 2019-06-13 9 1 1 2019-06-13 10 1 1 2019-06-13 11 1 1 2019-06-13 12 1 1 2019-06-13 13 1 1 2019-06-13 14 0 1 2019-06-13 15 1 1 2019-06-13 16 0 1 2019-06-13 17 0 1 2019-06-13 18 11 2019-06-13 19 0 1 2019-06-13 20 1 1 2019-06-13 21 0 1 2019-06-13 22 1 1 2019-06-13 23 02 2019-06-13 1 1 2 2019-06-13 2 12 2019-06-13 3 1 2 2019-06-13 4 12 2019-06-13 5 1 2 2019-06-13 6 1 2 2019-06-13 7 1 2 2019-06-13 8 12 2019-06-13 9 1 2 2019-06-13 10 1 2 2019-06-13 11 02 2019-06-13 12 12 2019-06-13 13 1 2 2019-06-13 14 02 2019-06-13 15 1 2 2019-06-13 16 1 2 2019-06-13 17 1 2 2019-06-13 18 1 2 2019-06-13 19 1 2 2019-06-13 20 1 2 2019-06-13 21 1 2 2019-06-13 22 1 2 2019-06-13 23 1


при попытке воспользоваться CROSS APPLY STRING_SPLIT((otvet),' ') получаю такой результат [img=] и количество строк равна 111619.
...
Рейтинг: 0 / 0
18.07.2020, 04:22
    #39981189
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли какой нибудь другой способ кроме cross apply string_split
Странный способ убедиться, что 4853 * 23 = 111619

Вопрос-то какой?
...
Рейтинг: 0 / 0
18.07.2020, 04:27
    #39981190
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли какой нибудь другой способ кроме cross apply string_split
Код: sql
1.
otvet = substring ( otvet, (nzad - 1) * 2 + 1, 1 )



Но вы какой-то дикой фигней маетесь, чесслово.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Есть ли какой нибудь другой способ кроме cross apply string_split / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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