在SQL Server中,如何在select中创建while循环
发布时间:2020-05-23 05:46:25 所属栏目:MsSql 来源:互联网
导读:数据将如下所示: id | data ----|--------- 1 | AABBCC 2 | FFDD 3 | TTHHJJKKLL 我想要的结果是什么 id | data ----|--------- 1 | AA 1 | BB 1 | CC 2 | FF 2
|
数据将如下所示: id | data
----|---------
1 | AABBCC
2 | FFDD
3 | TTHHJJKKLL
我想要的结果是什么 id | data
----|---------
1 | AA
1 | BB
1 | CC
2 | FF
2 | DD
3 | TT
3 | HH
3 | JJ
3 | KK
3 | LL
我有一个使用游标的sql代码 DECLARE @table2 table ( id INTEGER,data VARCHAR(500))
DECLARE Cur CURSOR FOR
SELECT id FROM table1
OPEN Cur
WHILE ( @@FETCH_STATUS = 0 )
BEGIN
DECLARE @LoopNum INTEGER
DECLARE @tempID INTEGER
DECLARE @tempDATA VARCHAR(255)
FETCH NEXT FROM Cur INTO @tempID
SET @tempDATA = SELECT data from table1 where id = @teampID
SET @LoopNUM = 0
WHILE @LoopNum< len(@tempDATA) / 2
BEGIN
INSERT INTO table2 (id,data)
VALUES( @tempID,SUBSTRING(@tempDATA,@LoopNum * 2 +1,2))
SET @LoopNum = @LoopNum + 1
END
END
CLOSE Cur
DEALLOCATE Cur
SELECT * FROM table2
我不想使用CURSOR,因为它太慢了,我有很多数据. 解决方法>创建将字符串(特别是“AA”,“BB”,“CC”)分析到传入字符串(例如“AABBCC”)的函数.>从表中选择ID,并使用 CROSS APPLY该数据作为参数的函数,这样您就可以拥有当前行数据中包含的行数.不需要游标或存储过程. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读
