简体   繁体   English

如何拆分字符串并将其插入SQL Server表中?

[英]How can I split and insert a string into a SQL Server table?

I need to insert these IMS080','IMS108','IMS218 values into temptable in separate rows, like this: 我需要将这些IMS080','IMS108','IMS218值分别插入到temptable中,如下所示:

row 1: IMS080
row 2: IMS108
row 3: IMS218

Query : 查询:

INSERT INTO #TableName
    SELECT UserID 
    FROM ('IMS080', 'IMS108', 'IMS218') 

Thanks in advance 提前致谢

You can add all the id in one string separated by comma and can split it to each row. 您可以将所有ID都添加到一个用逗号分隔的字符串中,并将其拆分为每一行。 This will help you. 这将为您提供帮助。

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); 

You could use of union 您可以使用union

Insert into #TableName
SELECT 'IMS080' UserID
union 
select 'IMS108' UserID
union 
select 'IMS218' UserID

Edit : 编辑:

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) 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM