s
o
u
l
s
j
i
e

SQL server将某个字符串将按指定字符分解成子字符串(行转列)

今天突然需要用到这样的方法,在网上找过很多,大体都写的很复杂,这个简单实用。转载自ChineseMoonGod的博客:https://www.cnblogs.com/ChineseMoonGod/p/7308783.html

DECLARE @STR VARCHAR(1000)--字符串变量
DECLARE @temptable TABLE ( substrs VARCHAR(50)) --创建表变量辅助
BEGIN 
SET @STR ='姓名,家庭地址,家庭成员,邮箱'+','
DECLARE @INSERTSTR VARCHAR(50)--截取后的第一个字符串 
DECLARE @NEWSTR VARCHAR(1000) --截取第一个字符串后剩余的字符串 
SET @INSERTSTR = LEFT(@STR,CHARINDEX(',',@STR)-1) 
SET @NEWSTR = STUFF(@STR,1,CHARINDEX(',',@STR),'') 
INSERT @temptable VALUES(@INSERTSTR) 
WHILE(LEN(@NEWSTR)>0) 
BEGIN 
  SET @INSERTSTR = LEFT(@NEWSTR,CHARINDEX(',',@NEWSTR)-1) 
  INSERT @temptable VALUES(@INSERTSTR) 
  SET @NEWSTR = STUFF(@NEWSTR,1,CHARINDEX(',',@NEWSTR),'') 
END 
SELECT * FROM @temptable
END  

 

posted @ 2018-06-26 10:21  soulsjie  阅读(364)  评论(0编辑  收藏  举报
你累吗?累就对了,当你觉得累时证明你在走上坡路!-----NotFoundObject - 2016-12-14 08:43