Member 12605293 Ответов: 1

Как вставить значения запятых в один столбец в SQL server


Привет
Может ли кто-нибудь сказать мне ,как вставить значения запятых в один столбец в sql server и объединить их с помощью функции split by comma?

Что я уже пробовал:

ID Name Dept   Sal      Techids
 1  Abc  Mech  20000    1,2,3


Techid  Techname
   1       Abc
   2       def
   3       ghi

1 Ответов

Рейтинг:
12

OriginalGriff

Не. Это Пита для использования, и хотя она проста в вставке значений для начала, она быстро опускается в гадость.
Вместо этого создайте таблицу "связывания" :

ID Name Dept   Sal      
 1  Abc  Mech  20000    


Techid  Techname
   1       Abc
   2       def
   3       ghi


DeptTechs
ID   DeptId   TechId
1      1        1
2      1        2
3      1        3
Затем вы используете соединение для объединения информации, когда хотите ее получить.
SELECT d.*, t.TechName FROM Depts d
JOIN DeptTech dt ON d.ID = dt.DeptId
JOIN Techs t ON d.TechID = t.ID
Таким образом, добавление и удаление техников-это тривиальная работа: просто удалите связывающую строку.


Member 12605293

Привет Грифф,
Спасибо за ваш ответ.Я не понимаю приведенную выше таблицу сэр,

Можете ли вы дать мне пример запроса с ними для запуска на моей машине

OriginalGriff

Затем научитесь понимать это - хранить данные в CSV в SQL-плохая идея - код, который вам нужно использовать, - это настоящий Пита. Подумайте об этом: как удалить TechId из списка, разделенного запятыми? Вы можете это сделать, но это действительно боль. Создание дополнительной таблицы для связывания существующих таблиц вместе действительно намного проще, чем вообще возиться со значениями CSV.
Разбиение его на строки достаточно сложно:
https://www.codeproject.com/Tips/732596/Converting-comma-separated-data-in-a-column-to-row
все остальное становится полным кошмаром!