sql server 获取分隔字符串后的长度

--方法1

--sql 分隔字符串,返回个数

CREATE function f_splitLen_1

(

  @str varchar(1024),  --要分割的字符串

  @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 @[email protected]+1

    set @location=charindex(@split,@str,@start)

    set @[email protected]+1

  end

  return @length

end

--演示1

select dbo.f_splitLen_1(‘1,2,3,4‘,‘,‘as ‘Count‘

-- 查询结果为:4

create function f_splitLen_2

(

    @str varchar(1024),  --要分割的字符串

    @split varchar(10)  --分隔符号

)

returns int

as

begin

    return len(@str)-len(replace(@str,@split,‘‘))+1

  end

      

--演示2

select dbo.f_splitLen_2(‘1,2,3,4‘,‘,‘as ‘Count‘

-- 查询结果为:4

时间: 2024-08-29 14:32:20

sql server 获取分隔字符串后的长度的相关文章

sql server获取插入记录后的ID

select @@IDENTITY --返回为当前会话的所有作用域中的任何表最后生成的标识值. select IDENT_CURRENT('table_name') --返回为任何会话和任何作用域中的特定表最后生成的标识值,它不受作用域和会话的限制,而受限于所指定的表 select SCOPE_IDENTITY() --返回为当前会话和当前作用域中的任何表最后生成的标识值.

Sql server 获取指定字符后的所有字符 - 去掉指定字符前的所有字符

select top 10  SUBSTRING( sproductcode, CHARINDEX('-', SProductCode)+1, LEN(SProductCode)) from csmrep.crmextdb.dbo.imei  

SQL Server获取下一个编码字符串的实现方案分割和进位

我在前一种解决方案SQL Server获取下一个编码字符实现和后一种解决方案SQL Server获取下一个编码字符实现继续重构与增强两篇博文中均提供了一种解决编码的方案,考虑良久对比以上两种方案的,后一种方案虽然解决了其中方案的缺点,但是依然存在的编码字符串长度的限制(最多满足8位长度),本博文提供的方案将编码字符串长度增加到19位,也可以足够项目中实现这些编码. 具体的编码规则可以参看以上两种解决方案博文中的描述,也可以进入SQL Server 大V潇湘隐者的获取下一个编码字符串问题这篇博文.

SQL Server获取下一个编码字符实现继续重构与增强

我在SQL Server获取下一个编码字符实现的博文中,虽然实现了这个问题,但是感觉维护起来比较麻烦,例如如果调整编码字符串的固定长度,就需要变更三个函数,这样的为何成本确实比较大.面向对象编程很重视讲究开放封闭原则,我认为数据库对象特别函数.存储等对象也要尽量封装成实现单一功能,维护起来简单,也方便后续人员的维护,便利别人也是便利自己. 针对编码字符串的规则,继续延伸总结如下: 1.第一个字符必须是字母A-Z中任意一个字符,其长度可以为1位.2位.3位,……,6位.7位.8位.……: 2.编码

SQL Server中截取字符串常用函数

SQL Server 中截取字符串常用的函数: 1.LEFT ( character_expression , integer_expression ) 函数说明:LEFT ( '源字符串' , '要截取最左边的字符数' ) 返回从字符串左边开始指定个数的字符 select LEFT('SQL_Server_2008',4 ); 返回结果:SQL_ 2.RIGHT ( character_expression , integer_expression ) 函数说明:RIGHT ( '源字符串'

SQL Server插入中文数据后出现乱码

原文:SQL Server插入中文数据后出现乱码 今天在做项目的过程中遇到如标题的问题,情况如下图: 数据库使用的是SQL Server2012版本,创建表的脚本如下: CREATE TABLE [dbo].[Type](  [TypeId] INT NOT NULL PRIMARY KEY,     [TypeName] NVARCHAR(50)NOT NULL,     [Description] NVARCHAR(255) NULL,     [CategoryId] INT NOT NU

sql server 获取每一个类别中值最大的一条数据

sql server 获取每一个类别中值最大的一条数据 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 /* 数据如下: name val memo a    2   a2(a的第二个值) a    1   a1--a的第一个值 a    3   a3:a的第三个值 b    1   b1--b的第一个

为什么我的SQL server 在附加数据库后,数据库总是变成了只读?

我从同学那拷贝来一个数据库,在他那都可以用,可是当我附加到自己SQL Server上时,数据库显示为只读,我查看过数据库源文件所在的文件夹都正常!请高手指教!谢谢 ========================= 你要把数据库文件的属性改了 右键点击两个文件的属性--安全--添加--立即查找--找everyone这个用户把他的权限都勾上 确定再附加就OK了 为什么我的SQL server 在附加数据库后,数据库总是变成了只读?,布布扣,bubuko.com

SQL Server获取指定行的数据

SQL Server获取指定行(如第二行)的数据 --SQL Server获取指定行(如第二行)的数据-- --法一(对象法)-- select * from ( select * , number = row_number() over(order by Grade desc) from Students )  m where number = 2 --法二(排除法)--- select top 1 * from Students where Grade not in ( select top