SQLServer2008 关于while循环
有这样一个表tbl
id code name
11 a aa/bb/cc
22 b ee/rr/tt
需要将name段根据‘/’拆分开来,变成新的数据行
即:
id code name
11 a aa
11 a bb
......以下省略.....
先给该表加上序号,存入临时表
select ROW_NUMBER()OVER(ORDER BY T.code desc) 序号,* into #temp from tbl
--创建一个带有固定列的临时表
create table #temp2
(
ID int,
code varchar(50),
name varchar(50)
)
--使用while循环
declare @name varchar(200)
declare @count int
declare @i int
select @count=COUNT(*) from #temp
set @i=1
while(@i<=@count)
begin
--逐行判断
select @name=t.Name from #temp t where t.序号=@i
while(CHARINDEX('/',@name,1)!=0)
begin
insert into #temp2 select t.id,t.code,SUBSTRING(@name,1,CHARINDEX('/',@name,1)-1) from #temp t where t.序号=@i
set @name3=SUBSTRING(@name,CHARINDEX('/',@name,1)+1,LEN(@name)-len(SUBSTRING(@name,1,CHARINDEX('/',@name,1))))
end
if(CHARINDEX('/',@name,1)=0)
begin
insert into #temp2 select t.id,t.code,@name from #temp t where t.序号=@i
end
set @i=@i+1
end
select * from #temp2
注意:
insert into #temp from XX 只能往已经存在的表里插入值
select * into #temp 可以往未创建的表里添加值
最新文章
- ES6之let命令详解
- shell 常用小命令总结
- Equal Sum Sets
- Android优化—— Google 发布 Android 性能优化典范
- angularjs ng-select ng-options 默认选中项.
- android应用商店完整版源码
- bzoj 2599 数分治 点剖分
- 【转】Java之 内存区域和GC机制
- C#_ajax_demo
- scroll
- [置顶] Java启动命令大观
- SharePoint 要一个多行文本类型字段为特殊类型的链接
- 东秦C#课设002-简单的文本编辑器
- 地址选择的,弹出的下拉。select。通过《option》《/option》来隔开
- 获取sap登陆用户名的中文描述
- linux下载服务器上的文件命令-sz
- Codeforces 629D Babaei and Birthday Cakes DP+线段树
- 网络爬虫构造出URL的列表数据
- MySQL中间件方案盘点_搜狐科技_搜狐网
- The difference between ppp and ndis
热门文章
- MarkDown 语法及使用
- Linux之网络文件共享服务(SamBa)
- array_map 等php回调函数使用问题(关联数组下标获取)
- python爬虫18 | 就算你被封了也能继续爬,使用IP代理池伪装你的IP地址,让IP飘一会
- 《零压力学Python》 之 第二章知识点归纳
- scp相关命令总结
- XOR Queries
- [bzoj1879][Sdoi2009]Bill的挑战_动态规划_状压dp
- 机器学习4logistic回归
- 前端控制器是整个MVC框架中最为核心的一块,它主要用来拦截符合要求的外部请求,并把请求分发到不同的控制器去处理,根据控制器处理后的结果,生成相应的响应发送到客户端。前端控制器既可以使用Filter实现(Struts2采用这种方式),也可以使用Servlet来实现(spring MVC框架)。