首页 > 其他 > 详细

Excel列值(不限字符串数字)转换Vaules()拼凑表

时间:2017-07-11 00:35:41      阅读:423      评论:0      收藏:0      [点我收藏+]
DECLARE @TaskCmdOne VARCHAR(MAX)=‘北京  
上海  
广州  
长春  
济南  
成都  
南京  
武汉‘, @TaskCmdTwo VARCHAR(MAX)  
  
  
SELECT @TaskCmdOne=REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@TaskCmdOne,‘,‘,‘,‘),‘、‘,‘,‘),‘/‘,‘,‘),‘\‘,‘,‘),‘|‘,‘,‘)  
  
IF CHARINDEX(‘,‘,@TaskCmdOne)=0   
BEGIN  
  SELECT @TaskCmdOne=REPLACE(@TaskCmdOne,CHAR(13)+CHAR(10),‘,‘)  
  WHILE LEFT(@TaskCmdOne,1)=‘,‘ SELECT @TaskCmdOne=RIGHT(@TaskCmdOne,LEN(@TaskCmdOne)-1)  
  WHILE RIGHT(@TaskCmdOne,1)=‘,‘ SELECT @TaskCmdOne=LEFT(@TaskCmdOne,LEN(@TaskCmdOne)-1)  
END ELSE  
BEGIN  
    SELECT @TaskCmdOne=REPLACE(@TaskCmdOne,CHAR(13)+CHAR(10),‘<br>‘)   
    SELECT @TaskCmdOne=REPLACE(@TaskCmdOne,‘<br>‘,‘‘)  
END  
  
SELECT @TaskCmdOne=REPLACE(@TaskCmdOne,‘ ‘,‘‘)  
SELECT @TaskCmdTwo=REPLACE(@TaskCmdOne,‘,‘,‘‘‘)‘+‘,‘+‘(‘‘‘)  
SELECT @TaskCmdOne=REPLACE(@TaskCmdOne,‘,‘,‘‘‘‘+‘,‘+‘‘‘‘)  
  
SELECT @TaskCmdOne=‘‘‘‘+@TaskCmdOne+‘‘‘‘  
SELECT @TaskCmdTwo=‘(‘‘‘+@TaskCmdTwo+‘‘‘)‘  
SELECT @TaskCmdOne=REPLACE(@TaskCmdOne,‘ ‘,‘‘)  
SELECT @TaskCmdTwo=REPLACE(@TaskCmdTwo,‘ ‘,‘‘)  
  
DECLARE @xml XML,@xmltwo XML  
SELECT @xml=CAST(‘<x>‘+REPLACE(@TaskCmdOne,‘,‘,‘,</x><x>‘)+‘</x>‘ AS XML)   
SELECT @xmltwo=CAST(‘<x>‘+REPLACE(@TaskCmdTwo,‘,‘,‘,</x><x>‘)+‘</x>‘ AS XML)   
  
SELECT A.RowID,A.col1,B.col2 FROM (  
SELECT ROW_NUMBER() OVER(ORDER BY GETDATE()) RowID,T.C.value(‘.‘,‘varchar(500)‘) AS col1  from    
(SELECT @xml.query(‘.‘) AS name) AS a  
CROSS APPLY a.name.nodes(‘/x‘) T(C))A INNER JOIN (  
SELECT ROW_NUMBER() OVER(ORDER BY GETDATE()) RowID,T.C.value(‘.‘,‘varchar(500)‘) AS col2  from    
(SELECT @xmltwo.query(‘.‘) AS name) AS a  
CROSS APPLY a.name.nodes(‘/x‘) T(C))B ON A.RowID=B.RowID  

  

Excel列值(不限字符串数字)转换Vaules()拼凑表

原文:http://www.cnblogs.com/binguo2008/p/7148225.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!