zoukankan      html  css  js  c++  java
  • sql知识点的积累和使用过的例子

    越来越发现自己的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,'')这个方法的使用也要多去学习理解一下。

    三 行转列

     可以查看这个老兄写的,谢谢他的分享https://my.oschina.net/boltwu/blog/508565

  • 相关阅读:
    iOS 有用的代码片段
    iOS 限制软盘输入法
    UIlabel 遇到\n 换行iOS
    关于delegate 与 protocol 的理解 iOS
    ios 跳转到app store
    iOS 上下左右滑动手势
    求某段程序运行的高精度时间
    转载——GDB中应该知道的几个调试方法
    文章翻译——使用 GNU 的 GDB调试器,内存布局和栈——01
    第十章扩展——__cdecl 的压栈方式——printf
  • 原文地址:https://www.cnblogs.com/qzzy/p/4557059.html
Copyright © 2011-2022 走看看