update table set c1=substring(aa,1,1),......,,aa =''
解决方案 »
- 想知道一个sql查询语句的执行细节
- 菜鸟又有问题了,我想建索引啊,在线等,马上揭帖
- 请问在win2000 advance server下能装sql6.5吗?
- 网络不通??~~
- 安装SQL SERVER2000 的问题,无法安装!
- select * from biao where id in ('1,2,3,4,5,6,7,8,98,9,11,22,33,66,55,44,99,88,77')这个用in 执行起来太慢,怎么解决
- 能不能把select出来的结果当同一条sql中的where参数?
- 如何查询一个字段的值为空即null
- sql server 2000 安装 最后老提示配置服务器失败! 急! 急! 急! 急! 急! 急! 急! 急!
- SQL Server 2008 R2最大连接数
- 请教:一道我们将要作为考试题目的问题——E-R图 !谢谢!
- 看一下这一语句,怎么写?
这样行吗?
aa
9,10,11,12
也就是說,不僅僅是一位
因为可以把复杂的问题简单化解决你的问题的存储过程大概如下:
---------------------------------
CREATE PROCEDURE [cp_split_column]
ASDECLARE @ipos int,
@aa varchar(250),
@c1 varchar(10),
@c2 varchar(10),
@c3 varchar(10),
@c4 varchar(10),
@i int,
@id int ----!!!DECLARE abc CURSOR FOR SELECT id,aa FROM myTable
OPEN abc
FETCH NEXT FROM abc INTO @id,@aaWHILE (@@FETCH_STATUS = 0)
BEGIN
SET @c1=''
SET @C2=''
SET @c3=''
SET @C4=''
SET @i=1
IF LEN(LTRIM(@aa))>0
BEGIN
SET @ipos=CHARINDEX(',',@aa,1)
WHILE @ipos>0
BEGIN
IF @i=1 SET @c1=LEFT(@aa,@ipos-1)
ELSE IF @i=2 SET @c2=LEFT(@aa,@ipos-1)
ELSE IF @i=3 SET @c3=LEFT(@aa,@ipos-1)
ELSE SET @c4=LEFT(@aa,@ipos-1)
SET @i=@i+1
IF @i>4 BREAK
SET @aa=SUBSTRING(@aa,@ipos+1,250)
SET @ipos=CHARINDEX(',',@aa,1)
END
IF @i<5
BEGIN
IF @i=1 SET @c1=@aa
ELSE IF @i=2 SET @c2=@aa
ELSE IF @i=3 SET @c3=@aa
ELSE SET @c4=@aa
END
END
UPDATE myTable
SET c1=@c1,
c2=@c2,
c3=@c3,
c4=@c4
WHERE id=@id FETCH NEXT FROM abc INTO @id,@aa
END
CLOSE abc
DEALLOCATE abc
http://www.csdn.net/expert/topic/807/807556.xml?temp=.9903833