码迷,mamicode.com
首页 > 数据库 > 详细

sql知识点的积累和使用过的例子

时间:2015-06-06 19:29:55      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:

越来越发现自己的sql方面的知识的欠缺,所以只能放低姿态一点一点的学了

 

一 游标和charIndex的使用。

  游标我一直没用过,以前只是在同事们写的存储过程里见过,但是一直没看明白(可是我就是比较笨吧)。今天在写一个东西的时候用到了需要用到游标来处理,于是我就先比葫芦画瓢的写了一个,供以后参考吧。

技术分享
 1 declare @t table(id int,value varchar(100))
 2 
 3 declare my_cursor cursor local FOR
 4 SELECT * FROM (SELECT AnsID, AnsTitle FROM dbo.Answers WHERE  charindex(,+CONVERT(NVARCHAR(20),AnsID)+,,,+@qusid+,) > 1) AS tb
 5 declare @id_old int , @id int , @value varchar(10) , @s varchar(100)
 6 open my_cursor
 7 fetch my_cursor into @id , @value
 8 select @id_old = @id , @s=‘‘
 9 while @@FETCH_STATUS = 0
10 begin
11     if @id = @id_old
12        select @s = @s + , + cast(@value as varchar)
13     else
14       begin
15         insert @t values(@id_old , stuff(@s,1,1,‘‘))
16         select @s = , + cast(@value as varchar) , @id_old = @id
17       end
18     fetch my_cursor into @id , @value
19 END
20 insert @t values(@id_old , stuff(@s,1,1,‘‘))
21 close my_cursor
22 deallocate my_cursor
23 
24 SELECT @t
View Code

charIndex的使用呢其实是我这有这样的一个 int类型的ID判断在类似‘1,2,3...’中就一直再报无法将varchar转换为int类型,我刚开始的时候思路一直是把后者转换为int类型, 但是又觉得似乎走不通,然后我就问了下度娘,在网上看有位前辈说用charIndex(),我就说试一下,这个直到我自己在编辑器里敲出来,才明白过来这个和我的思路正好相反,这个是把只有一个值的int 类型转换成了varchar类型,然后再使用charIndex()来判断是否包含,这样来说就可以要到我要的效果。这个事情除了明白了认识了charindex()的使用,还让我觉得,有时候也许换一条思路就可以做到自己想做的事情,要灵活的去运用sql的函数和编程中的思想。

二  stuff()方法

 stuff(@s,1,1,‘‘)这个方法的使用也要多去学习理解一下。

sql知识点的积累和使用过的例子

标签:

原文地址:http://www.cnblogs.com/qzzy/p/4557059.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!