Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将字符串拆分并插入SQL Server表中?_Sql_Sql Server - Fatal编程技术网

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

如何将字符串拆分并插入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

我需要将这些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>' + 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)