разделите разделенный запятыми столбец таблицы и преобразуйте его в один столбец

#sql #sql-server

#sql #sql-сервер

Вопрос:

У меня есть таблица, которая содержит столбец, разделенный запятыми. Я хочу преобразовать этот столбец в один столбец из всех значений, разделенных запятыми. Как я могу разделить столбец Access для каждого groupid в одном столбце?

Далее следует блок кода:

     eg. 
`CREATE TABLE [dbo].[GROUP](
[GroupID] [int] NULL,
[MstID] [int] NULL,
[GroupName] [varchar](300) NULL,
[Access] [varchar](4000) NULL
  )

   INSERT INTO [dbo].[GROUP] values (1, 1,           'Administrator','Crr|IF|view,Crr|IF|Arc,Crr|IF|DL,Crr|IF|M2F,Crr|IF|Route,Crr|IF|print,Crr|IF|Add Crr,Crr|IF|Reply,Crr|ST|view,Crr|ST|Arc,Crr|ST|M2F,Crr|ST|prt,Crr|Arc|view,Crr|A rc|PArc,Crr|Arc|DL,Crr|Arc|M2F,Crr|Arc|prt,ADM|SET|view,ADM|SET|upd,ADM|FLD|view ,ADM|FLD|add,ADM|FLD|edit,ADM|FLD|del,ADM|Usr|view,ADM|Usr|add,ADM|Usr|edit,ADM| Usr|del,ADM|Usr|VA,ADM|UG|view,ADM|UG|add,ADM|UG|edit,ADM|UG|del,ADM|AT|view,ADM |AT|Arc,ADM|AT|E2E,ADM|AAT|view,ADM|AAT|PArc,ADM|AAT|RST,ADM|CP|view,ADM|CP|upda   te,Crr|DR|view,Crr|Srh|view')`
  

Комментарии:

1. Можете ли вы обновить желаемый результат, например?

Ответ №1:

Попробуйте использовать команду REPLACE :

 `INSERT INTO [dbo].[GROUP] values (1,   1,           'Administrator',REPLACE(REPLACE('Crr|IF|view,Crr|IF|Arc,Crr|IF|DL,Crr|IF|M2F,Crr|IF|Route,Crr|IF|print,Crr|IF|Add Crr,Crr|IF|Reply,Crr|ST|view,Crr|ST|Arc,Crr|ST|M2F,Crr|ST|prt,Crr|Arc|view,Crr|A rc|PArc,Crr|Arc|DL,Crr|Arc|M2F,Crr|Arc|prt,ADM|SET|view,ADM|SET|upd,ADM|FLD|view ,ADM|FLD|add,ADM|FLD|edit,ADM|FLD|del,ADM|Usr|view,ADM|Usr|add,ADM|Usr|edit,ADM| Usr|del,ADM|Usr|VA,ADM|UG|view,ADM|UG|add,ADM|UG|edit,ADM|UG|del,ADM|AT|view,ADM |AT|Arc,ADM|AT|E2E,ADM|AAT|view,ADM|AAT|PArc,ADM|AAT|RST,ADM|CP|view,ADM|CP|upda   te,Crr|DR|view,Crr|Srh|view', ',',''), '|', ''))`