#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', ',',''), '|', ''))`