powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Разделить в строке значение, которые через запятые и сделать по ним поиск в других таблица
18 сообщений из 18, страница 1 из 1
Разделить в строке значение, которые через запятые и сделать по ним поиск в других таблица
    #39642863
noobcode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер, нужна ваша помощь по запросу.

Есть таблица
Код: sql
1.
2.
3.
4.
5.
CREATE TABLE testtable(
    id INT NOT NULL IDENTITY PRIMARY KEY , /*ID*/
    groups      TEXT NOT NULL, /*ID групп работавших в данном проекте*/
    project_id INT UNIQUE NOT NULL, /*ID проекта*/
    );


Пример таблицы testtable


В каждой группе имена людей которые работали над проектом.
Мне нужно вывевсти все имена людей работавших над проектом например: 5

Как правильно распарсить значение в столбце groups и сделать по ним поиск??

Как вытянуть людей из групп я то понимаю,
Код: sql
1.
SELECT name,group_id FROM users WHERE group_id= '32'


а вот как со всех этих групп вытянуть одним запросом?

Очень нужна ваша помощь, уже второй день сижу и не могу разобраться)
...
Рейтинг: 0 / 0
Разделить в строке значение, которые через запятые и сделать по ним поиск в других таблица
    #39642866
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что говорит тот человек, который придумал такую cтруктуру?
...
Рейтинг: 0 / 0
Разделить в строке значение, которые через запятые и сделать по ним поиск в других таблица
    #39642869
noobcode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Меня очень улыбнул ваш вопрос)) Этого человека уже нету))
Можно и переделать все, не критично. Ток как это будет выглядеть? Под каждую группу новую строчку?
id groups
1 32
2 41
3 2
4 4
5 11
...
Рейтинг: 0 / 0
Разделить в строке значение, которые через запятые и сделать по ним поиск в других таблица
    #39642882
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noobcodeЭтого человека уже нету))Его "распяли" на процессорном блоке БЭСМ-6 и установили в холле вашей конторы, в назидание другим, дабы даже не думали делать как он?
...
Рейтинг: 0 / 0
Разделить в строке значение, которые через запятые и сделать по ним поиск в других таблица
    #39642884
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noobcodeМожно и переделать все, не критично. Не можно, а нужно!

noobcodeТок как это будет выглядеть? Под каждую группу новую строчку?Поштудируйте основы баз данных, нормализацию...
...
Рейтинг: 0 / 0
Разделить в строке значение, которые через запятые и сделать по ним поиск в других таблица
    #39642886
noobcode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Щукина Анна,

Ну я вижу только такой вариант структурирования данной таблицы. Если есть предложения как лучше, то буду рад вашему мнению.
...
Рейтинг: 0 / 0
Разделить в строке значение, которые через запятые и сделать по ним поиск в других таблица
    #39642888
iiyama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noobcode,

читать

если разовая задача, то ...
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
create table #testtable (
    id INT NOT NULL IDENTITY PRIMARY KEY , /*ID*/
    groups      varchar(50) NOT NULL, /*ID групп работавших в данном проекте*/
    project_id INT UNIQUE NOT NULL, /*ID проекта*/
    );
create table #users(name nvarchar(50), group_id int)

insert into #testtable
	select '32, 41,2,4' ,5 union
	select '11,1' ,8 union
	select '41,55,8' ,22 union
	select '32,55' ,10

insert into #users 
	select N'тест001',32 union
	select N'тест002',55	

select distinct ISNULL(u.name, N'Н/Д') as [UserName]
from #testtable T 
	cross apply STRING_SPLIT(T.groups, ',') CA
	left join #users u ON CA.value= u.group_id

drop table #testtable
drop table #users


...
Рейтинг: 0 / 0
Разделить в строке значение, которые через запятые и сделать по ним поиск в других таблица
    #39642890
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT u.name, u.group_id
FROM users u
WHERE EXISTS
(
 SELECT *
 FROM testtable t
 WHERE ','+u.groups+',' LIKE '%,'+t.CAST(group_id AS VARCHAR(100))+',%'
);

Все индексы идут лесом. Очень печально!
...
Рейтинг: 0 / 0
Разделить в строке значение, которые через запятые и сделать по ним поиск в других таблица
    #39642891
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опечатка:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT u.name, u.group_id
FROM users u
WHERE EXISTS
(
 SELECT *
 FROM testtable t
 WHERE ','+u.groups+',' LIKE '%,'+CAST(t.group_id AS VARCHAR(100))+',%'
);
...
Рейтинг: 0 / 0
Разделить в строке значение, которые через запятые и сделать по ним поиск в других таблица
    #39642892
noobcode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iiyama,

Это я так понимаю ответ, как избавиться от таблицы tabletest )) и перенести все данные по нормальному?
...
Рейтинг: 0 / 0
Разделить в строке значение, которые через запятые и сделать по ним поиск в других таблица
    #39642894
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noobcodeiiyama,

Это я так понимаю ответ, как избавиться от таблицы tabletest )) и перенести все данные по нормальному?Вы где-то говорили о переносе данных?
...
Рейтинг: 0 / 0
Разделить в строке значение, которые через запятые и сделать по ним поиск в других таблица
    #39642897
noobcode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iap,

Нет, не упоменал, смутило в конце удаление таблиц))
Протестировал ваш код, ругаеться на "STRING_SPLIT"
Недопустимое имя объекта "STRING_SPLIT".
...
Рейтинг: 0 / 0
Разделить в строке значение, которые через запятые и сделать по ним поиск в других таблица
    #39642900
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noobcodeiap,

Нет, не упоменал, смутило в конце удаление таблиц))
Протестировал ваш код, ругаеться на "STRING_SPLIT"
Недопустимое имя объекта "STRING_SPLIT".У меня нет STRING_SPLIT().
Про удаление таблиц ничего не понял.
...
Рейтинг: 0 / 0
Разделить в строке значение, которые через запятые и сделать по ним поиск в других таблица
    #39642903
noobcode
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iap,

Простите, большая часть ответа относилась к пользователю iiyama.
О переносе таблиц не упоменал.

А в ответе iiyama были сточки:
Код: sql
1.
2.
drop table #testtable
drop table #users



Вот откуда информация о удалении таблиц)

Ваш код еще тестирую. Спасибо.
...
Рейтинг: 0 / 0
Разделить в строке значение, которые через запятые и сделать по ним поиск в других таблица
    #39643069
iiyama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noobcode,

1. SPLIT_STRING
2.
Q>Это я так понимаю ответ, как избавиться от таблицы tabletest )) и перенести все данные по нормальному?
A>Нет, это пример с тестовыми данными. А что делать, это решать не мне. http://%5Burl=https://docs.microsoft.com/ru-ru/sql/t-sql/statements/create-table-transact-sql?view=sql-server-2017#temporary-tables]]тынц2.
...
Рейтинг: 0 / 0
Разделить в строке значение, которые через запятые и сделать по ним поиск в других таблица
    #39643071
iiyama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noobcode,

сорри, тынц2
...
Рейтинг: 0 / 0
Разделить в строке значение, которые через запятые и сделать по ним поиск в других таблица
    #39643090
blonduser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noobcode,

Код: sql
1.
SELECT name,group_id FROM users WHERE group_id IN (32,41,2,4)
...
Рейтинг: 0 / 0
Разделить в строке значение, которые через запятые и сделать по ним поиск в других таблица
    #39643103
Фотография alex_p_n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
noobcode,
Для начала - надо почитать про нормализацию и привести таблицу хотя бы к 1НФ
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Разделить в строке значение, которые через запятые и сделать по ним поиск в других таблица
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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