如何将字符串拆分并插入SQL Server表中?
我需要将这些IMS080’、‘IMS108’、‘IMS218’值插入单独的行中,如下所示:如何将字符串拆分并插入SQL Server表中?,sql,sql-server,Sql,Sql Server,我需要将这些IMS080’、‘IMS108’、‘IMS218’值插入单独的行中,如下所示: row 1: IMS080 row 2: IMS108 row 3: IMS218 查询: 提前感谢您可以将所有id添加到一个由逗号分隔的字符串中,并可以将其拆分到每一行。这对你有帮助 INSERT INTO #TableName SELECT Split.a.value('.', 'VARCHAR(100)') AS USERID FROM ( SELECT CAST ('<M&g
row 1: IMS080
row 2: IMS108
row 3: IMS218
查询:
提前感谢您可以将所有id添加到一个由逗号分隔的字符串中,并可以将其拆分到每一行。这对你有帮助
INSERT INTO #TableName
SELECT Split.a.value('.', 'VARCHAR(100)') AS USERID
FROM
(
SELECT CAST ('<M>' + REPLACE('IMS080,IMS108,IMS218', ',', '</M><M>') + '</M>' AS XML) AS Data
)AS A CROSS APPLY Data.nodes ('/M') AS Split(a);
你可以利用工会
编辑:
我看到三根弦,不是一根弦。那么你的实际投入是什么?”IMS080'、'IMS108'、'IMS218'或IMS080、IMS108、IMS218?这可能对您发布的案例有用。请不要在此处发布重复的问题。为什么要使用select a.UserID可能重复?您可以直接使用值“IMS080”、“IMS108”、“IMS218”注意:字符串分割是SQL Server 2016中的一项新功能,因此可能还不适用于所有人……此查询针对使用SQL Server 2016的用户,我不知道OP使用的是哪台SQL Server,但请记住此查询也在使用中。。
INSERT INTO #TableName
SELECT Split.a.value('.', 'VARCHAR(100)') AS USERID
FROM
(
SELECT CAST ('<M>' + REPLACE('IMS080,IMS108,IMS218', ',', '</M><M>') + '</M>' AS XML) AS Data
)AS A CROSS APPLY Data.nodes ('/M') AS Split(a);
Insert into #TableName
SELECT 'IMS080' UserID
union
select 'IMS108' UserID
union
select 'IMS218' UserID
Insert into #TableName
values ('IMS080'), ('IMS108'), ('IMS218')
CREATE TABLE #TableName(ID int identity(1,1),userid varchar(50));
INSERT INTO #TableName
SELECT value as UserID FROM STRING_SPLIT('IMS080,IMS108,IMS218',',') ORDER BY value
SELECT * FROM #TableName
------------
ID userid
----------
1 IMS080
2 IMS108
3 IMS218
INSERT INTO #TableName
SELECT UserID
FROM ( VALUES ('IMS080')
, ('IMS108')
, ('IMS218')
) AS X (UserId)