打印本文 打印本文 关闭窗口 关闭窗口
SQL 中自己创建函数,分割字符串
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2668  更新时间:2007/11/14 12:54:01  文章录入:mintao  责任编辑:mintao
 

----------------------------------------------------------------

/**

 *   版权:  石太祥 [ E.Alpha ]   所有 ;

 *

 *   email:     ealpha(AT)msn(DOT)com  ;

 *   msn: ealpha(AT)msn(DOT)com  ;

 *   QQ  : 9690501

 *

 *  所有转载请注明本信息!

 */

----------------------------------------------------------------

if exists (select * from dbo.sysobjects where id = object_id(N''''[dbo].[getEPnum]'''') and xtype in (N''''FN'''', N''''IF'''', N''''TF''''))
drop function [dbo].[getEPnum]
GO

if exists (select * from dbo.sysobjects where id = object_id(N''''[dbo].[getstrcount]'''') and xtype in (N''''FN'''', N''''IF'''', N''''TF''''))
drop function [dbo].[getstrcount]
GO

if exists (select * from dbo.sysobjects where id = object_id(N''''[dbo].[getstrofindex]'''') and xtype in (N''''FN'''', N''''IF'''', N''''TF''''))
drop function [dbo].[getstrofindex]
GO

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO



---  这个函数直接调用了另外的两个函数,可以先阅读下面提到的两个函数
CREATE   function  getEPnum  (@str  varchar(8000))
returns  varchar(8000)
as
begin
   declare  @str_return  varchar(8000) 
   declare  @i  int
   declare @temp_i int
   declare @onlineornot int
   declare @findepnumok int

  -- 用来取得一个epnum,
  -- 规则:首先从chatid中取,如果有在线得,则取得最前面得在线得返回
  --       如果全部不在线,则返回 ‘00000000’

   select @findepnumok = 0
   select @temp_i = 0
    
   IF len(@str)<=0
      begin
  SELECT @str_return = ''''00000000''''
      end
   else
      begin
           select @i = dbo.getstrcount(@str,'''','''')

    WHILE @temp_i< @i
    BEGIN
        

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

打印本文 打印本文 关闭窗口 关闭窗口