sqlserver 字符串变为一个表 可以根据需求自行更改,灵活运用 无 declare @lstr_inserthead varchar(500)--列名declare @lstr_insertfields varchar(max)--数据字符串declare @splitrol varchar(2)--行分割符declare @splitcol varchar(2)--列分隔符set @spli
sql server
字符串变为一个表
可以根据需求自行更改,灵活运用 declare @lstr_inserthead varchar(500)--列名declare @lstr_insertfields varchar(max)--数据字符串declare @splitrol varchar(2)--行分割符declare @splitcol varchar(2)--列分隔符set @splitrol='⒉'set @splitcol='⒈'set @lstr_inserthead='product⒈unitid⒈levelid⒈cost'--表头参数set @lstr_insertfields='001888⒈8⒈9⒈¥⒉000507⒈⒈⒈¥⒉001339⒈⒈⒈¥⒉001340⒈⒈⒈¥⒉001335⒈⒈⒈¥'--数据参数set @lstr_inserthead=@lstr_inserthead+@splitcoldeclare @headstr varchar(20)--列名declare @headsql varchar(200)--列头生成set @headsql='select 'while charindex('⒈',@lstr_inserthead)0begin set @headstr = substring(@lstr_inserthead,1,charindex(@splitcol,@lstr_inserthead)-1)--截取表头 if @headsql='select ' set @headsql=@headsql+''''' as '+@headstr else set @headsql=@headsql+','''' as '+@headstr set @lstr_inserthead = stuff(@lstr_inserthead,1,charindex(@splitcol,@lstr_inserthead),'') --去掉已截取内容end/*以下为生成表*/set @headsql=@headsql+' where 1=2 union 'set @lstr_insertfields=replace(@lstr_insertfields,@splitrol,''' union select ''')set @lstr_insertfields=@headsql+'select '''+replace(@lstr_insertfields,@splitcol,''',''')+''''print(@lstr_insertfields)exec(@lstr_insertfields)