首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求个游标的例子!该怎么处理

2012-04-17 
求个游标的例子!谁给个游标的列子:14441日14721日14722日17161日18161日想要的结果是把第一列相同的第二列

求个游标的例子!
谁给个游标的列子:
14441日
14721日
14722日
17161日
18161日
想要的结果是把第一列相同的第二列字符串连接在一起


本人刚接触游标,哪里有好的游标的教程能否推荐一个?

[解决办法]
楼主的这个需求不需要游标,方法参考:http://blog.csdn.net/htl258/archive/2009/03/15/3993029.aspx

游标相应实例与用法参考:http://blog.csdn.net/htl258/category/582965.aspx
[解决办法]

SQL code
--不用游标create table test1(equimentid int,errocode varchar(10))insert into test1(equimentid,errocode) values(1,'123')insert into test1(equimentid,errocode) values(1,'43')insert into test1(equimentid,errocode) values(1,'567')insert into test1(equimentid,errocode) values(2,'123')insert into test1(equimentid,errocode) values(2,'563')insert into test1(equimentid,errocode) values(3,'63')create function fn_showstring(@id int)returns varchar(100)asbegin  declare @sql varchar(100)  set @sql=''  select @sql=@sql+errocode+',' from test1 where equimentid=@id  return @sqlendselect equimentid,dbo.fn_showstring(equimentid) errorcode from test1 group by equimentid
[解决办法]
游标使用的例子,供参考:
SQL code
--> 构造测试数据declare @tb table(pname  varchar(50))insert @tb select '电视机' union allselect '电冰箱' union allselect '洗衣机' union allselect '空调' union allselect '微波炉'--> 游标的使用declare my_cursor cursor scroll dynamicforselect pname from  @tbopen my_cursordeclare @pname sysnamefetch next from my_cursor into @pnamewhile(@@fetch_status=0)  begin    print 'Product Name: ' + @pname    fetch next from my_cursor into @pname  endfetch first from my_cursor into @pnameclose my_cursordeallocate my_cursor--> 结果/**Product Name: 电视机Product Name: 电冰箱Product Name: 洗衣机Product Name: 空调Product Name: 微波炉**/
[解决办法]
SQL code
IF OBJECT_ID('tempdb..#temp', 'u') IS NOT NULL    DROP TABLE #tempGOCREATE TABLE #temp(    id INT,    [date] NVARCHAR(10))INSERT #tempselect '1444', N'1日' union allselect '1472', N'1日' union allselect '1472', N'2日' union allselect '1716', N'1日' union allselect '1816', N'1日'GO--SQL:SELECT    id,    [date]=STUFF((SELECT ','+[date] FROM #temp WHERE id=t.id FOR XML PATH('')),1,1,'')FROM #temp tGROUP BY id--RESULT:/*id    date1444    1日1472    1日,2日1716    1日1816    1日*/ 

热点排行