SQL自定义函数,分隔符

--------------建立存储过程

CREATE function [dbo].[split]

(

@str varchar(4500),

@sep varchar(1)

)

returns @t table(id int identity(1,1),col varchar(4500))

as

begin

--分别定义了 目前位置,分隔符开始和字符串长度和,当前获取的字符串

declare @posi int,@start int,@str_leg int,@gchar varchar(2),@mingzhong int

set @str_leg=len(@str)

set @posi=0

set @start=0

set @mingzhong=0

while(@posi<[email protected]_leg)

begin

set @gchar=substring(@str,@posi,1)

if(@[email protected])

begin

insert into @t values(substring(@str,@start+1,@[email protected]))

set @[email protected]

end

set @[email protected]+1

end

return

end

------------执行,以:为分隔符查询结果

select * from dbo.split(‘234;32423;;2342;a;b;234234;23;‘,‘;‘)

时间: 2024-07-30 13:33:35

SQL自定义函数,分隔符的相关文章

SQL自定义函数split分隔字符串

SQL自定义函数split分隔字符串 一.F_Split:分割字符串拆分为数据表 Create FUNCTION [dbo].[F_Split] ( @SplitString nvarchar(max), --源字符串 @Separator nvarchar(10)=' ' --分隔符号,默认为空格 ) RETURNS @SplitStringsTable TABLE --输出的数据表 ( [id] int identity(1,1), [value] nvarchar(max) ) AS BE

sql自定义函数及C#中调用

1.在C#中调用sql自定义函数 1.1 标量值函数 sql语句调用 select  dbo.GetClassIDWithName(1) string strSql = string.Format("select dbo.GetClassIDWithName('{0}')",dtTime);DataTable dt = DB_Contrast.DB.OleDbHelper.GetDataTable(strSql); 1.2 表值函数 sql语句调用 select * from GetA

SQL 自定义函数(Function)——参数默认值

sql server 自定义函数分为三种类型:标量函数(Scalar Function).内嵌表值函数(Inline Function).多声明表值函数(Multi-Statement Function) 标量函数:标量函数是对单一值操作,返回单一值. 内嵌表值函数:内嵌表值函数的功能相当于一个参数化的视图.它返回的是一个表,内联表值型函数没有由BEGIN-END 语句括起来的函数体. 多声明表值函数:它的返回值是一个表,但它和标量型函数一样有一个用BEGIN-END 语句括起来的函数体,返回值

sql 自定义函数--固定格式字符转时间类型

遇到一个德国的客户,他们的时间格式是JJJJ-TT-DD HH:MM:SS,程序按照这个格式将时间插入数据库,但是在sql自带的转换函数convert.cast过程中报错,网上搜了下都说用convert.cast可以直接转换,但是这个客户的机器就是不行,没有办法自己写了个转换函数,供大家参考: 由于自定义函数里面不能直接使用getdate方法:所以先创建了个获取本地时间的小函数: create view v_getdate as select getdate() as now_date 然后是转

SQL自定义函数function

https://blog.csdn.net/qq_23833037/article/details/53170789 https://www.cnblogs.com/youring2/p/4916400.html 用户定义自定义函数像内置函数一样返回标量值,也可以将结果集用表格变量返回. sql函数必须有返回值. ps: 函数看成一个处理某些数据的功能,因有返回值,则在代码使用中,需要一个处理过的数据. 可直接调用函数处理数据,返回数据给代码使用. 标量函数:返回一个标量值. 表格值函数{内联表

PL/SQL自定义函数

从SQL表达式中调用函数的限制 为了从SQL表达式中调用函数,一个用户定义函数必须: 是存储函数 只接受IN函数 只接收有受的SQL数据类型,而不接受PL/SQL数据类型 返回数据类型为有效的SQL数据类型,而非PL/SQL特殊的类型 从SQL表达式中调用的函数不能包含DML语句 从在表T上的UPDATE/DELETE语句中调用的函数,函数内容不能包含在同一个表T上的DML 从在表T上的UPDATE或DELETE语句中调用的函数,函数内容不能查询同一个表 从SQL语句中调用的函数不能包含结束事物

sql 自定义函数返回中文,数字,英文

--提取数字IF OBJECT_ID('DBO.GET_NUMBER2') IS NOT NULLDROP FUNCTION DBO.GET_NUMBER2GOCREATE FUNCTION DBO.GET_NUMBER2(@S VARCHAR(100))RETURNS VARCHAR(100)ASBEGINWHILE PATINDEX('%[^0-9]%',@S) > 0BEGINset @s=stuff(@s,patindex('%[^0-9]%',@s),1,'')ENDRETURN @S

MS SQL自定义函数IsPositiveInteger

判断字符串是否为正整数,0开始的的数字不算. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE FUNCTION [dbo].[svf_IsPositiveInteger] ( @string NVARCHAR(MAX) ) RETURNS BIT --函数返BIT数据类型,是数字返回1,非数字返回0. AS BEGIN DECLARE @rtv BIT = 1 DECLARE @str NVARCHAR(MAX) = LTRIM(R

sql 自定义函数

create function dbo.fun(@inputid as varchar(40)) returns int as begin declare @counts int select @counts=COUNT(*) from Stu_Infor return @counts end declare @input varchar(40) set @input='2' select dbo.fun(@input) 自己写个小例子 http://www.cnblogs.com/no7dw/