begin if object_id('tempdb..#t') is not null drop table #t; create table #t ( filepath ) ); declare @filePathStr nvarchar(max), , ), @sql nvarchar(max); set @filePathStr = '1;235;67456;2667;35;3;67'; set @filePathStr += ';'; begin ; print(@endIndex);
字符串分割后的值,把表中不存在的插入表中 --供大家参考 使用场景,自行思考…… --创建表tb1 Create table tb1 ( cola int, colb ) ) --插入数据 insert into tb1(cola,colb) , 'A' union all , 'B' union all , 'C'; --存储过程 Create proc sp_tbTest @sid int,--ID )--A,B,C,D,G AS BEGIN insert into tb1(cola,col
一.按指定符号分割字符串,返回分割后的元素个数,方法很简单,就是看字符串中存在多少个分隔符号,然后再加一,就是要求的结果(标量值函数) create function Func_StrArrayLength ( ), --要分割的字符串 ) --分隔符号 ) returns int as begin declare @location int declare @start int declare @length int set @str=ltrim(rtrim(@str)) set @loc
CREATE FUNCTION [dbo].[fn_SplitStringToTable] ( @p_Input VARCHAR(MAX), @p_Delimeter CHAR() = ',' ) RETURNS @l_Table TABLE ( Id INT IDENTITY(, ), Value VARCHAR(), Position INT, Length INT ) BEGIN DECLARE @l_Position INT, @l_Value VARCHAR() SELECT @l_P
将字符串分割为表表经常用到,这里 SQL表值函数与CLR 表值函数,两种实现方法例出来如下: SELECT * FROM FP_EMSDB_PUB.dbo.SqlSplit('/','1oz/1.5oz/2oz/3oz') 效果如下: SQL实现表值函数 CREATE FUNCTION [dbo].[splitStr]( @s varchar(max), --待分拆的字符串 ) --数据分隔符 ),), col varchar(max)) --建立临时表保存分割后的字符 AS BEGIN DE
原文:SQL点滴3-一个简单的字符串分割函数 偶然在电脑里看到以前保存的这个函数,是将一个单独字符串切分成一组字符串,这里分隔符是英文逗号“,” 遇到其他情况只要稍加修改就好了 CREATE FUNCTION dbo.f_splitstr( @str varchar(8000))RETURNS @r TABLE(id int IDENTITY(1, 1), value varchar(5000))ASBEGIN /* Function body */ DECLARE @pos int
Create FUNCTION [dbo].[SplitIndex] ( @str AS VARCHAR(max), @Index AS INT, ) = '/' ) ) AS BEGIN ) --待分拆的字符串 ,), col varchar(max)) --建立临时表保存分割后的字符 DECLARE @splitlen INT BEGIN )) ,CHARINDEX(@SplitChar,@str)+@splitlen,'') END INSERT @tab VALUES(@str) SEL
Create FUNCTION [dbo].[SplitTable]( @s varchar(max), --待分拆的字符串 ) --数据分隔符 ),), col varchar(max)) --建立临时表保存分割后的字符 AS BEGIN DECLARE @splitlen int BEGIN )) ,CHARINDEX(@split,@s)+@splitlen,'') END INSERT @re VALUES(@s) RETURN END 示例: SELECT * FROM [dbo].[
好久没有写文章了,今天把前不久项目用到的SQL知识总结一下. 一丶字符串分割 SQL内置函数中是没有Split分割函数的,所以需要自己去实现,不多说,上代码: )) RETURNS @result TABLE(strValue VARCHAR(MAX)) AS BEGIN DECLARE @index INT SET @source = RTRIM(LTRIM(@source)) SET @index = CHARINDEX(@separator, @source) ) BEGIN )) , L
Sql Server 函数的操作实例!(执行多条语句,返回Select查询后的临时表) SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= CREATE FUNCTION csj_csj(@id as int) RETURNS @temp table --这里返回一个自己创建的表,里面的字段根据自己的需要设 ( [id] int, [zd] varcha
Sql Server 函数的操作实例!(返回一条Select语句查询后的临时表) SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE FUNCTION dbo.csjcsj() RETURNS TABLE AS RETURN ( SELECT * from xx ) GO 这是创建代码,执行代码如下: select * from csjcsj() 当然,也可以传参数!