Member 13932549 Ответов: 1

У меня есть таблица базы данных SQL-server, например


name            id
a              1,2
b              3,4
c              4,5


ВЫХОД ДЛЯ ЭТОГО ЕСТЬ....

name            id
a               1
a               1
b               2
b               2
c               3
c               3


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

Я пробовал соединения со строковыми функциями, но у меня ничего не получилось

Maciej Los

И... В чем твоя проблема?

1 Ответов

Рейтинг:
1

OriginalGriff

Не делай этого. Вы допустили ошибку в дизайне БД - не храните свои идентификаторы в виде списка, разделенного запятыми, так как с ними очень трудно работать в SQL.
Вместо этого добавьте вторую таблицу, которая связывает имя с идентификатором, и добавьте каждый идентификатор в виде отдельной строки в эту таблицу. Таким образом, Вы можете работать с идентификаторами отдельно, не возясь с довольно плохой обработкой строк SQL, и все же "комбинировать" их вместе, если вам это нужно. Кроме того, вы получаете JOIN и так далее, которые позволяют вам использовать SQL так, как он должен был использоваться.

CSV-данные легко хранить, но питу использовать!

Если вы сохраняете формат БД, который у вас есть, вам придется делать это каждый раз, когда вы хотите его использовать, и это все еще PITA rto, чтобы добавить или удалить идентификатор: Преобразование данных, разделенных запятыми в столбце, в строки для выбора[^]