将逗号分隔的浮点数和 varchar 字符串插入到临时表中



我有一个带有值的字符串:

 @value = 'e65.89,f34.yy,sw21.67,aqw21,g45.g4'

我需要将此字符串作为单独的行插入到临时表中。

喜欢:

     VALUES
     e65.89
     f34.yy
     sw21.67 
     aqw21
     g45.g4

我尝试了这段代码,它适用于整数值,但是当给定浮点数或 varchar 值时,它会显示错误:

法典:

CREATE TABLE #Temp (SNo INT IDENTITY(1,1),Code VARCHAR(max))
     Declare @value varchar(max)
     set @value = 'e65.89,f34.yy,sw21.67,aqw21,g45.g4'
    DECLARE @InsertStatement varchar(max) = 'insert into #Temp values ('+REPLACE(@value ,',','),(')+');';
    EXEC (@InsertStatement);
    SELECT * FROM #Temp;

错误:

Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'e'.

尝试用''(单引号(包装要插入的值

CREATE TABLE #Temp (SNo INT IDENTITY(1,1),Code VARCHAR(max))
Declare @value varchar(max)
set @value = 'e65.89,f34.yy,sw21.67,aqw21,g45.g4'
DECLARE @InsertStatement varchar(max) = 'insert into #Temp values (''' + 
REPLACE(@value ,',','''),(''')+ '''' + ');';
EXEC (@InsertStatement);
SELECT * FROM #Temp;

最新更新