有这样一个表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 可以往未创建的表里添加值
相关推荐
while循环语句 sql server
sqlserver算法中常用的一个语法while循环,和if条件语句and进行判断判断
日期变量 while循环变量 输入格式为:201801 201802 201803 201804 201805 201806 201807 201809 201810 201811 201812 201901 201902……
第1章 RDBMS基础:SQLServer数据库的构成 1.1 数据库对象概述 1.1.1 数据库对象 1.1.2 事务日志 1.1.3 最基本的数据库对象:表 1.1.4 文件组 1.1.5 数据库关系图 1.1.6 视图 1.1.7 存储过程 1.1.8 用户自定义函数 ...
11.5.3 用WHILE语句进行循环 11.5.4 WAITOR语句 11.5.5 TRY/CATCH块 11.6 本章小结 11.7 练习 第12章 存储过程 12.1 创建存储过程:基本语法 12.2 使用ALTER修改存储过程 12.3 删除存储过程 12.4 参数化 12.5 通过...
11.5.3 用WHILE语句进行循环 11.5.4 WAITOR语句 11.5.5 TRY/CATCH块 11.6 本章小结 11.7 练习 第12章 存储过程 12.1 创建存储过程:基本语法 12.2 使用ALTER修改存储过程 12.3 删除存储过程 12.4 参数化 12.5 通过...
--这儿存在两种情况:1、字符串不存在分隔符号 2、字符串中存在分隔符号,跳出while循环后,@location为0,那默认为字符串后边有一个分隔符号。 return substring(@str,@start,@location-@start) END select ...
while的简单循环,希望可以对初级学习者有所帮助
10.8 使用MIN或MAX函数的While循环 10.9 属性管理 10.10 小结 10.11 练习 第11章 与SQL Server环境的交互 11.1 OLE Automation对象的执行 11.1.1 sp-OACreat 11.1.2 sp-OAMetho 11.1.3 sp-OASetPropert 11.1.4 sp_...
10.8 使用MIN或MAX函数的While循环 10.9 属性管理 10.10 小结 10.11 练习 第11章 与SQL Server环境的交互 11.1 OLE Automation对象的执行 11.1.1 sp-OACreat 11.1.2 sp-OAMetho 11.1.3 sp-OASetPropert 11.1.4 sp_...
DECLARE @userId varchar(50) DECLARE @count int SET @count = 0 SELECT @count = count(*) FROM UserService_User WHERE Account like ‘1%’ WHILE @count > 0 BEGIN SELECT @userId = Id FROM ...
本文实例讲述了SQL Server实现将特定字符串拆分并进行插入操作的方法。分享给大家供大家参考,具体如下: --循环执行添加操作 declare @idx as int While Len(@UserList) > 0 Begin Set @idx = Charindex(',', @...
我们今天主要向大家讲述的是把SQL Server数据复制到的Access数据库中的实际操作步骤,把SQL Server数据库中的某些数据复制到的Access数据库中,其表的主要结构是相同的,不要提用openrowset,因为Access文件和SQL ...
在WHILE循环语句中,如果循环体语句条数多于一条,必须使用_________。 A、 BEGIN……END B、 CASE……END C、 IF…………THEN D、 GOTO SELECT查询中,要把结果中的行按照某一列的值进行排序,所用到的子句是____...
使用MS SQL Server这样久,游标一直没有使用过。以前都是使用WHILE循环加临时表来实现。刚刚联系个示例了解到游标概念与语法
chapter3\理论部分\源代码\SG3-Source\while循环.sql chapter3\理论部分\源代码\SG3-Source\全局变量和输出语句.sql chapter3\理论部分\源代码\SG3-Source\变量.sql chapter4 chapter4\上机部分 chapter4\上机部分\...
BEGIN…END经常用在条件语句中,如IF…ELSE 或WHILE循环中。BEGIN…END语句可以嵌套使用。 2.判断语句(IF…ELSE)通常计算机是按顺序执行程序中的语句,但是在许多情况下,语句执行的顺序以及是否执行依赖于程序...
2.1.1 sql server的结构 21 2.1.2 数据库访问标准化接口—odbc 22 2.1.3 使用查询分析器执行sql语句 22 2.2 transact-sql 24 2.2.1 transact-sql 概述 24 2.2.2 transact-sql的主要组成 25 2.2.3 transact-sql...