我有一个包含值的字符串:
@value = 'e65.89,f34.yy,sw21.67,aqw21,g45.g4'
我需要将此字符串作为单独的行插入临时表中。
像:
VALUES
e65.89
f34.yy
sw21.67
aqw21
g45.g4
我尝试了这段代码,它可以使用整数值,但是当给出float或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'.
答案 0 :(得分:0)
尝试使用''
(单引号)
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;