1.Fun_Split 分割字符串,形成返回表

CREATE FUNCTION [dbo].[Fun_Split]
(
@Items VARCHAR(MAX),
@SplitStr VARCHAR(MAX)
)
RETURNS @SplitTable TABLE(Item VARCHAR(MAX))
AS
BEGIN
DECLARE @Split_Index INT=0;
DECLARE @Split_len INT=0;
SET @Items = RTRIM(LTRIM(@Items));
SET @Split_Index = CHARINDEX(@SplitStr,@Items);
SET @Split_len=LEN(@SplitStr);
WHILE(@Split_Index>=1)
BEGIN
INSERT INTO @SplitTable VALUES(LEFT(@Items,@Split_Index-1));
SET @Items = SUBSTRING(@Items,@Split_Index + @Split_len,LEN(@Items)-@Split_Index);
SET @Split_Index = CHARINDEX(@SplitStr,@Items);
END
IF(@Items<>'')
INSERT INTO @SplitTable VALUES(@Items);
RETURN
END

2.Fun_arrlen 分割字符串,返回长度

CREATE FUNCTION [dbo].[Fun_arrlen]
(
@Str varchar(max),
@SplitStr varchar(max)
)
RETURNS int
AS
begin
Declare @i Int
Set @i = (Len(@Str) - Len(Replace(@Str,@SplitStr,'')))/Len(@SplitStr) +1
Return(@i)
end

3.Fun_GetStrIndex 模拟数组获取值

CREATE FUNCTION [dbo].[Fun_GetStrIndex]
(
@Str varchar(max),
@SplitStr varchar(max),
@index int
)
RETURNS varchar(max)
AS
begin
declare @location int
declare @start int
declare @next int
declare @seed int set @str=ltrim(rtrim(@str))
set @start=0
set @next=0
set @seed=len(@SplitStr) set @location=charindex(@SplitStr,@str)
while @location<>0 and @index>@next
begin
set @start=@location+@seed
set @location=charindex(@SplitStr,@str,@start)
set @next=@next+1
end
if @location =0 select @location =len(@str)+1
return substring(@str,@start,@location-@start);
end

运行结果:

sql server 函数的更多相关文章

  1. SQL SERVER 函数大全[转]

    SQL Server 函数大全 一旦成功地从表中检索出数据,就需要进一步操纵这些数据,以获得有用或有意义的结果.这些要求包括:执行计算与数学运算.转换数据.解析数值.组合值和聚合一个范围内的值等. 下 ...

  2. Sql Server 函数的操作实例!(执行多条语句,返回Select查询后的临时表)

    Sql Server 函数的操作实例!(执行多条语句,返回Select查询后的临时表) SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ==== ...

  3. Sql Server 函数的操作实例!(返回一条Select语句查询后的临时表)

    Sql Server 函数的操作实例!(返回一条Select语句查询后的临时表) SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE FUN ...

  4. Sql Server函数全解<五>之系统函数

    原文:Sql Server函数全解<五>之系统函数  系统信息包括当前使用的数据库名称,主机名,系统错误消息以及用户名称等内容.使用SQL SERVER中的系统函数可以在需要的时候获取这些 ...

  5. Sql Server函数全解<四>日期和时间函数

    原文:Sql Server函数全解<四>日期和时间函数   日期和时间函数主要用来处理日期和时间值,本篇主要介绍各种日期和时间函数的功能和用法,一般的日期函数除了使用date类型的参数外, ...

  6. SQL Server函数​---Union与Union All的区别

    SQL Server函数---Union与Union All的区别 如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字.union(或称 ...

  7. SQL Server 函数之日期格式化函数

    SQL Server 函数之日期格式化函数 高文龙关注0人评论612人阅读2017-09-23 13:47:07 SQL Server 函数之日期格式化函数 对于一些经常写SQL Server执行语句 ...

  8. sql server 函数的自定义

    创建用户定义函数.这是一个已保存 Transact-SQL 或公共语言运行时 (CLR) 例程,该例程可返回一个值.用户定义函数不能用于执行修改数据库状态的操作.与系统函数一样,用户定义函数可从查询中 ...

  9. SQL Server2008为表的某列设置默认值为SQL Server函数

      例如,设置SQL Server函数GETDATE()作为默认值:

  10. SQL Server函数​

    阅读目录 SQL Server函数---Union与Union All的区别 回到顶部 SQL Server函数---Union与Union All的区别 如果我们需要将两个select语句的结果作为 ...

随机推荐

  1. Linux软链接与硬链接

    1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接. [硬连接]硬连接指通过索引节点 ...

  2. bhrs报表年结步骤

    --前期准备数据三个表数据: s_subjtotal_year, subject_item, branch ,decrsubjtotal---informix 查看数据库剩余空间select d.na ...

  3. Cygwin ssh服务配置 (SecureCRT连接Cygwin配置)

    1.运行ssh-host-config 这里需要注意的是标红部分,输入的用户名或密码要符合计算机的用户名或密码策略(尤其是公司有权限限制的电脑). $ ssh-host-config *** Quer ...

  4. 说说oracle中的面向对象与面向集合

    这一篇算是对近期自己学习的一个心得总结 一.oracle的面向对象 SQL是面向集合的这个大家都知道,但是不可否认现在的oracle中有很多地方都体现着面向对象的思维.(这也算是各大语言殊途同归的一个 ...

  5. Knockout.Js学习目录

    1.Knockout.Js(简介) 2.Knockout.Js(监控属性Observables) 3.Knockout.Js(属性绑定) 4.Knockout.Js(事件绑定) 5.Knockout. ...

  6. Git操作指南(2) —— Git Gui for Windows的建库、克隆、上传

    本教程将讲述:gitk的Git Gui的部分常用功能和使用方法,包括:建库.克隆(clone).上传(push).下载(pull - fetch).合并(pull - merge). ———————— ...

  7. 关于Swift中实现Lazy initialize的方式

    在oc中我们通过 -(CardMatchingGame *)game { if(!_game) _game=[[CardMatchingGame alloc] initWithCardCount:[s ...

  8. start apache2 failed in Ubuntu

    Invalid command 'WSGIReloadMechanism', perhaps misspelled or defined by a module not included in the ...

  9. 使用NPOI完成导出Excel文件

    参考网址:http://blog.csdn.net/tiemufeng1122/article/details/6732588 能够实现  点击按钮弹出下载框    的功能,如图: HTML代码: & ...

  10. MATLAB连通域标记函数

    L = bwlabel(BW,n)返回一个和BW大小相同的L矩阵,包含了标记了BW中每个连通区域的类别标签,这些标签的值为1.2.num(连通区域的个数).n的值为4或8,表示是按4连通寻找区域,还是 ...