网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计资源 > 数据库 > 正文

sql字符串操作

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

把以前做项目用到的字符串操作函数发出来:

  1. /*------------------------------------------------------------------------------------------ 
  2. * Copyright(C) 2008  版权所有 
  3. * 功能描述:得到字符串长度 
  4. * 创建标识:亦心,2009年5月16日  
  5. * 修改标识: 
  6. ------------------------------------------------------------------------------------------*/ 
  7. IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[dbo].Fun_GetStrArrayLength'AND type in (N'FN', N'PC')) 
  8.     DROP FUNCTION [dbo].Fun_GetStrArrayLength 
  9. GO 
  10. CREATE function Fun_GetStrArrayLength   
  11. (   
  12. @str varchar(1024), --要分割的字符串   
  13. @split varchar(10) --分隔符号   
  14. )   
  15. returns int   
  16. as   
  17. begin   
  18. declare @location int   
  19. declare @start int   
  20. declare @length int   
  21. declare @len int 
  22. set @len=len(@split)  --add  
  23. set @str=ltrim(rtrim(@str))   
  24. set @location=charindex(@split,@str)   
  25. set @length=1   
  26. while @location<>0   
  27. begin   
  28. set @start=@location+@len   
  29. set @location=charindex(@split,@str,@start)   
  30. set @length=@length+1   
  31. end   
  32. return @length   
  33. end 
  34. GO 
  35. ----------------------------------------------------------------------------------------------------------------------------------- 
  36. IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'[dbo].Fun_GetStrArrayStrOfIndex'AND type in (N'FN', N'PC')) 
  37.     DROP FUNCTION [dbo].Fun_GetStrArrayStrOfIndex 
  38. GO 
  39. /*------------------------------------------------------------------------------------------ 
  40. * Copyright(C) 2008  版权所有 
  41. * 功能描述:得到要索引的字符串 
  42. * 创建标识:亦心,2009年5月16日  
  43. * 修改标识: 
  44. ------------------------------------------------------------------------------------------*/ 
  45. CREATE function Fun_GetStrArrayStrOfIndex   
  46. (   
  47. @str varchar(1024), --要分割的字符串   
  48. @split varchar(10), --分隔符号   
  49. @index int --取第几个元素   
  50. )   
  51. returns varchar(1024)   
  52. as   
  53. begin   
  54. declare @location int   
  55. declare @start int   
  56. declare @next int   
  57. declare @seed int   
  58.  
  59. set @str=ltrim(rtrim(@str))   
  60. set @start=1   
  61. set @next=1   
  62. set @seed=len(@split)   
  63.  
  64. set @location=charindex(@split,@str)   
  65. while @location<>0 and @index>@next   
  66. begin   
  67. set @start=@location+@seed   
  68. set @location=charindex(@split,@str,@start)   
  69. set @next=@next+1   
  70. end   
  71. if @location =0 select @location =len(@str)+1   
  72. --这儿存在两种情况:1、字符串不存在分隔符号 2、字符串中存在分隔符号,跳出while循环后,@location为0,那默认为字符串后边有一个分隔符号。   
  73. return substring(@str,@start,@location-@start)   
  74. end   
  75.  
  76. GO 
  77. ----------------------------------------------------------------------------------------- 
  78. if exists(select * from   dbo.sysobjects   where   id=object_id(N'dbo.Fun_SplitStr')    
  79. and   objectproperty(id,N'IsInlineFunction')=0)  
  80. DROP FUNCTION Fun_SplitStr 
  81. GO 
  82.  
  83. /*------------------------------------------------------------------------------------------ 
  84. * Copyright(C) 2008  版权所有 
  85. * 功能描述:得到字符串列表 
  86. * 创建标识:亦心,2009年5月16日  
  87. * 修改标识: 
  88. ------------------------------------------------------------------------------------------*/ 
  89.  
  90. CREATE  function Fun_SplitStr 
  91.     @SourceSql   varchar(8000), 
  92.     @StrSeprate   varchar(100)) 
  93.     returns   @temp   table(F1   varchar(100) 
  94. )    
  95.   as      
  96.   begin    
  97.   declare   @ch   as   varchar(100)    
  98.   set   @SourceSql=@SourceSql+@StrSeprate      
  99.   while(@SourceSql<>'')    
  100.                   begin    
  101.                   set   @ch=left(@SourceSql,charindex(',',@SourceSql,1)-1)    
  102.   insert   @temp   values(@ch)    
  103.   set   @SourceSql=stuff(@SourceSql,1,charindex(',',@SourceSql,1),'')    
  104.                   end    
  105.   return    
  106.   END 
  107.   GO 
  108. /*------------------------------------------------------------------------------------------ 
  109. * Copyright(C) 2008  版权所有 
  110. * 功能描述:合并处理函数 
  111. * 创建标识:亦心,2009年5月16日  
  112. * 修改标识: 
  113. ------------------------------------------------------------------------------------------*/ 
  114. CREATE FUNCTION dbo.f_str(@col1 varchar(10)) 
  115. RETURNS varchar(100) 
  116. AS 
  117. BEGIN 
  118.     DECLARE @re varchar(100) 
  119.     SET @re='' 
  120.     SELECT @re=@re+','+CAST(col2 as varchar
  121.     FROM tb 
  122.     WHERE col1=@col1 
  123.     RETURN(STUFF(@re,1,1,'')) 
  124. END 
  125. GO 
设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师