获取逗号风格的字符串中的某一个

比如'1,2,4,5,6' 第三个就是4

CREATE function [dbo].[Get_StrArrayStrOfIndex]
(
@str nvarchar(max), --要分割的字符串
@split varchar(10), --分隔符号
@index int --取第几个元素
)
returns varchar(1024)
as
begin
declare @location int
declare @start int
declare @next int
declare @seed int set @str=ltrim(rtrim(@str))
set @start=1
set @next=1
set @seed=len(@split) set @location=charindex(@split,@str)
while @location<>0 and @index>@next
begin
set @start=@location+@seed
set @location=charindex(@split,@str,@start)
set @next=@next+1
end
if @location =0 select @location =len(@str)+1
--这儿存在两种情况:1、字符串不存在分隔符号 2、字符串中存在分隔符号,跳出while循环后,@location为0,那默认为字符串后边有一个分隔符号。 return substring(@str,@start,@location-@start)
end
GO

获取逗号分隔的字符串的个数

CREATE function [dbo].[Get_StrArrayLength]
(
@str nvarchar(max), --要分割的字符串
@split varchar(10) --分隔符号
)
returns int
as
begin
declare @location int
declare @start int
declare @length int set @str=ltrim(rtrim(@str))
set @location=charindex(@split,@str)
set @length=1
while @location<>0
begin
set @start=@location+1
set @location=charindex(@split,@str,@start)
set @length=@length+1
end
return @length
end GO

按照某个符号分割字符串 翻来一张表

CREATE  FUNCTION  [dbo].[SplitStringToTable]
(
@String nvarchar(4000), --格式如:“1,2,3,4,”
@SplitChar nvarchar(10) --分割的字符:“,”
)
RETURNS @table Table(ID varchar(100))
AS
BEGIN
DECLARE @Index INT
SET @Index = 0 IF @String <> ''
Begin
IF RIGHT(@String,1)<> @SplitChar
SET @String = @String + @SplitChar
IF LEFT(@String,1)= @SplitChar
SET @String = STUFF(@String, 1, 1, '')
End WHILE CHARINDEX(@SplitChar,@String,@Index) > 0
BEGIN
INSERT INTO @table(ID)
VALUES (SUBSTRING(@String, @Index, CHARINDEX(@SplitChar, @String,
@Index) - @Index))
SET @index = CHARINDEX(@SplitChar, @String, @Index) + 1 END
RETURN
END
GO

最新文章

  1. ubuntu14.04 upgrade出现【Ubuntu is running in low-graphics mode】问题的一个解决办法
  2. Scala
  3. 职责链模式(chain of responsibility)
  4. RestFul API初识
  5. 警惕rapidxml的陷阱:添加节点时,请保证变量的生命周期
  6. 1001Sum Problem
  7. 一点简单的关于ASP.NET下载
  8. Linux的终端与进程
  9. [Web] What Is JSONP?
  10. winform(C#)拖拽实现获得文件路径
  11. 常用分组函数count-avg-sum-max-min
  12. [HeadFirst-HTMLCSS入门][第十一章布局排版]
  13. gem update --system 302 错误 解决方案(转)
  14. 基于visual Studio2013解决C语言竞赛题之1021九九乘法表
  15. jquery点击目标DIV以外关闭效果
  16. WC.exe【C】
  17. Idea-每次修改JS文件都需要重启Idea才能生效解决方法
  18. java设计模式--UML类图
  19. css3画半圆 , 加上一点动画
  20. Java SE练习题——求奇数

热门文章

  1. 【google面试题】求1到n的正数中1出现的次数的两种思路及其复杂度分析
  2. Tensorflow进行POS词性标注NER实体识别 - 构建LSTM网络进行序列化标注
  3. Linux反编译
  4. Thinkphp 获取所有子分类或父分类ID
  5. Google声明机器学习在自己定制的芯片比方普通的GPU和CPU快15到30倍
  6. 怎样编写YARN应用程序
  7. 【指导】SonarQube 部署说明
  8. [Canvas]Running Horse
  9. Solidworks如何把装配体做成单个零件
  10. android中RecyclerView控件实现瀑布流布局