转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> Sql Server >> 正文
SQL 中自己创建函数,分割字符串         

SQL 中自己创建函数,分割字符串

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2670 更新时间:2007/11/14 12:54:01
      select @onlineornot = online from wwchat_user where epnum=dbo.getstrofindex(@str,'''','''',@temp_i)           
       IF (@onlineornot=1)
                begin
              select @str_return =dbo.getstrofindex(@str,'''','''',@temp_i)
       select @findepnumok = 1 --找到epnum后置为1
       BREAK
                end
       ELSE
         begin
       select @temp_i = @temp_i + 1
                     select @findepnumok = 0 --找不到epnum后置为1
         end
    END

          if @findepnumok = 0
               begin
     SELECT @str_return = ''''00000000''''
              end
      end
     
   return  @str_return 
end


GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

         

-- getstrcount  输入一个没有分割的字符串,以及分割符
--返回数组的个数


CREATE     function  getstrcount (@str varchar(8000),@splitstr varchar(100)) 
--returns varchar(8000) 
returns int
as 
begin 
   declare  @int_return int 
   declare  @start  int 
   declare  @next  int 

   declare  @location  int 
 
   select @next = 0
   select @location = 1
 

   if len(@str)<len(@splitstr)
      select @int_return =0
   if charindex(@splitstr,@str) = 0
      select @int_return =0

   while  (@location<>0) 
   begin 
       select  @start  =  @location  + 1 
       select  @location  =  charindex(@splitstr,@str,@start) 
       select  @next  = @next + 1
       select  @int_return = @next

   end 

   return  @int_return
end 

 


GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO



--  getstrofindex  输入一个未分割的字符串,舒服分割符号,舒服要取得的字符位置
-- 返回 制定位置的字符串

CREATE   function  getstrofindex (@str varchar(8000),@splitstr varchar(4),@index int=0) 
returns  varchar(8000) 
as 
begin 
   declare  @str_return  varchar(8000) 
   declare  @start  int 
   declare  @next  int 
   declare  @location  int 

   select  @start =1 
   select  @next = 1  --如果习惯从0开始则select  @next  =0 
   select  @location  =  charindex(@splitstr,@str,@start) 
   while  (@location  <>0  and  @index  >  @next  ) 

   begin 
       select  @start  =  @location  +1 
       select  @location  =  charindex(@splitstr,@str,@start) 
       select  @next 
=@next  +1 
   end
 
   if  @location  =0  select  @location  =len(@str)+1  --如果是因为没有逗号退出,则认为逗号在字符串后 
   select  @str_return  =  substring(@str,@start,@location 
-@start--@start肯定是逗号之后的位置或者就是初始值1 
   if  (@index  <>  @next  )  select  @str_return  =  ''''''''  --如果二者不相等,则是因为逗号太少,或者@index小于@next的初始值1。 
 
    return  @str_return 
end 

上一页  [1] [2] [3]  下一页


[Access]sql随机抽取记录  [Access]ASP&SQL让select查询结果随机排序的实现方法
[系统软件]SQL语句性能优化--LECCO SQL Expert  [C语言系列]SQL Server到DB2连接服务器的实现
[C语言系列]SQL Server到SYBASE连接服务器的实现  [C语言系列]SQL Server到SQLBASE连接服务器的实现
[C语言系列]SQL Server连接VFP数据库的实现  [C语言系列]ASP+SQL Server之图象数据处理
[C语言系列]SQL Server连接ACCESS数据库的实现  [C语言系列]DBA的最佳选择—图形界面还是T-SQL命令?
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台