SQL临时表多数据逗号分隔插入单行问题
解决SQL临时表单行存入逗号分隔值的问题
你当前的INSERT语句会报错,因为表#Tempdata只有Account_Id一列,但你在VALUES里传入了三个独立的值,SQL会认为你要插入三列数据,导致列数不匹配。
要把'3'、'4'、'5'以逗号分隔的形式存入单行,直接将这三个值拼接成一个字符串插入即可:
CREATE TABLE #Tempdata ( Account_Id varchar(max) ) -- 插入逗号分隔的字符串到单行 INSERT INTO #Tempdata VALUES ('3,4,5');
如果你的数据是从其他表的多行记录中来,需要合并成逗号分隔值再插入,可以用STRING_AGG函数(适用于SQL Server 2017及以上版本):
-- 示例:从源表多行数据合并后插入临时表 CREATE TABLE #SourceData ( Account_Id varchar(max) ) INSERT INTO #SourceData VALUES ('3'), ('4'), ('5'); INSERT INTO #Tempdata SELECT STRING_AGG(Account_Id, ',') AS Account_Id FROM #SourceData;
内容的提问来源于stack exchange,提问作者chinna
相关产品推荐
相关产品推荐

