周一至周五 : 08:30 - 17:30 客服专员电话/微信:17301649371 QQ:2627049059
微信咨询

扫码微信咨询

关注公众号

关注微信公众号

电话: 021 5161 9370
返回顶部
自定义一个将字符串拆分为每个字符的函数
显示全部楼层 倒序浏览 发表日期 2022-04-15 16:53:11 1480次阅读 0次回复
自定义一个"将字符串拆分为每个字符"的函数

功能简介:返回字符串的每一个字符


01.复制以下脚本语句 在数据库中执行一次
CREATE FUNCTION [dbo].[Splits](@Text NVARCHAR(4000) )
RETURNS  @tempTable TABLE(id INT IDENTITY(1,1) PRIMARY KEY,[VALUE] NVARCHAR(4000))
AS
BEGIN
declare
@str NVARCHAR(4000)
set @str = @Text
declare @i int
declare @count int
select @count = 0
select @i = len(@str)
declare @str1 NVARCHAR(4000)
select @str1 = ''
while (@i > @count)
begin
select @count = @count + 1
select @str1 = @str1 + substring (@str,@count,1) + '.'
end

DECLARE @StartIndex INT                --开始查找的位置
     DECLARE @FindIndex  INT                --找到的位置
     DECLARE @Content  VARCHAR(4000)    --找到的值
     DECLARE @Sign NVARCHAR(4000)
     --初始化一些变量
     SET @StartIndex = 1 --T-SQL中字符串的查找位置是从1开始的
     SET @FindIndex=0
         SET @Sign='.'
         SET @Text=@str1
  --开始循环查找字符串逗号
     WHILE(@StartIndex <= LEN(@Text))
     BEGIN
         --查找字符串函数 CHARINDEX   第一个参数是要找的字符串
         --第二个参数是在哪里查找这个字符串
         --第三个参数是开始查找的位置
         --返回值是找到字符串的位置
         SELECT @FindIndex = CHARINDEX('.',@Text,@StartIndex)
         --判断有没找到 没找到返回0
         IF(@FindIndex =0 OR @FindIndex IS NULL)
         BEGIN
             --如果没有找到者表示找完了
             SET @FindIndex = LEN(@Text)+1
         END
         --截取字符串函数 SUBSTRING   第一个参数是要截取的字符串
         --                             第二个参数是开始的位置
         --                             第三个参数是截取的长度
         --@FindIndex-@StartIndex 表示找的的位置-开始找的位置=要截取的长度
         --LTRIM 和 RTRIM 是去除字符串左边和右边的空格函数
         SET @Content = LTRIM(RTRIM(SUBSTRING(@Text,@StartIndex,@FindIndex-@StartIndex)))
         --初始化下次查找的位置
         SET @StartIndex = @FindIndex+1
         --把找的的值插入到要返回的Table类型中
         INSERT INTO @tempTable ([VALUE]) VALUES (@Content)
     END
     RETURN
END



02.验证函数是否创建成功,
表值函数.png


03.将 SELECT VALUE  AS 拆分字符 FROM  Splits( 'abc123中文Ok')  语句在数据库中执行,如下图所示表示函数创建有效可用:
有效.png





QQ:2136567674
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则  允许回帖邮件提醒楼主

快表软件是国内较早研究表格类软件开发平台的团队之一,迄今已有十多年的行业经验.致力于为企事业单位提供实用可靠的数字化平台。
  • 微信公众号

  • 微信小商店

  • 微信客服

  • Powered by Discuz! X3.4 | Copyright © 2022-2024, XiRong Soft. | 快表软件
  • 沪ICP备13033196号 | 营业执照 |上海西戎软件科技有限公司|沪公网安备31011502002146号|沪ICP备13033196号 |