SQL根据指定分隔符分解字符串实现步骤
SQL 实现 字符串 步骤 指定 根据 分解 分隔符
2023-06-13 09:14:41 时间
如果有一个字符串eg:"sun,star,moon,clouds",想要在MSSQL中根据给定的分隔符","把这个字符串分解成各个元素[sun][star][moon][clouds],如何实现呢?为此,创建一个Function,代码如下:
复制代码代码如下:
CREATEFUNCTION[dbo].[Split_StrByDelimiter](@StringVARCHAR(8000),@DelimiterCHAR(1))
RETURNS@temptableTABLE(itemsVARCHAR(8000))
AS
BEGIN
DECLARE@idxINT
DECLARE@sliceVARCHAR(8000)
SELECT@idx=1
IFlen(@String)<1OR@StringISNULLRETURN
while@idx!=0
BEGIN
SET@idx=charindex(@Delimiter,@String)
IF@idx!=0
SET@slice=LEFT(@String,@idx-1)
ELSE
SET@slice=@String
IF(len(@slice)>0)
INSERTINTO@temptable(Items)VALUES(@slice)
SET@String=RIGHT(@String,len(@String)-@idx)
IFlen(@String)=0break
END
RETURN
END
示例:如果输入
SELECT*FROMdbo.Split_StrByDelimiter("sun,star,moon,clouds",",")
结果返回
sun
star
moon
clouds
在上面的代码做变形,返回有多少个元素
CREATEFUNCTION[dbo].[GetCount_Split_StrByDelimiter](@StringVARCHAR(8000),@DelimiterCHAR(1))
RETURNSINT
AS
BEGIN
DECLARE@temptableTABLE(itemsVARCHAR(8000))
DECLARE@SplitCountINT
DECLARE@idxINT
DECLARE@sliceVARCHAR(8000)
SELECT@idx=1
IFlen(@String)<1OR@StringISNULLRETURN0
while@idx!=0
BEGIN
SET@idx=charindex(@Delimiter,@String)
IF@idx!=0
SET@slice=LEFT(@String,@idx-1)
ELSE
SET@slice=@String
IF(len(@slice)>0)
INSERTINTO@temptable(Items)VALUES(@slice)
SET@String=RIGHT(@String,len(@String)-@idx)
IFlen(@String)=0break
END
SET@SplitCount=(SELECTCOUNT(*)FROM@temptable)
RETURN@SplitCount
END
示例
SELECTdbo.GetCount_Split_StrByDelimiter("sun,star,moon,clouds",",")
结果返回
4
相关文章
- SQL Server实现split函数分割字符串功能及用法示例
- 让Oracle SQL脱颖而出——性能优化实现(oracle的sql优化)
- sql通过Oracle实现批量执行SQL语句(oracle批量执行)
- MSSQL实现快速导入SQL文件(mssql导入sql文件)
- SQL Server中实现字符串转时间的方式(sqlserver字符串转时间)
- SQL访问MySQL:揭秘数据库访问之旅(sql访问mysql)
- SQL Server直连:实现高效的数据传输(sqlserver 直连)
- SQL Server左补0实现字符串最大长度统一(sqlserver左补0)
- SQL Server 字符串的左填充实现(sqlserver左填充)
- SQL Server 增添账号的技术实现(sqlserver加帐户)
- Oracle多条SQL的执行方法及优化建议(oracle多条sql)
- Oracle SQL添加列:轻松实现更新数据库表的目的(oracle添加列sql)
- Oracle通过SQL脚本实现快速操作(oracle执行sql脚本)
- MySQL数据库连接—完美实现你的SQL语句(mysql数据库连接语句)
- MySQL SQL调优技巧提高数据库性能(mysql中sql调优)
- 从SQL到Redis实现灵活高效的数据访问(sql访问redis数据)
- Oracle SQL语句实现列数据修改(oracle修改列sql)
- Oracle中编写SQL脚本实现持续创新(oracle中sql脚本)
- Oracle SQL 实战字符串截取技巧(oracle。sql截取)
- sql复制表结构和数据的实现方法
- 在SQL中获取一个长字符串中某个字符串出现次数的实现方法