UDF_区别_分割字符串成单个的字符并返回表(插入到表中)

/*
SQL表值函数和标量值函数的区别
实验环境:SQL Server 2014,参考maomao365有改编
在sqlserver中存储过程中,我们经常需要编写一个sql函数供存储过程使用,加强代码的复用性, 存储过程中函数有两种:
1.返回一张数据表的sql函数,我们称之为“表值函数”
2.返回一个指定数值的sql函数,我们称之为“标量值函数”
那么这两种sql函数,最大和唯一的区别为:返回类型不一样
*/
---------------------------------------------------------------------------------------------
--定义了一个表值函数,此函数可以返回符合id等于参数的所有行信息
--DROP FUNCTION fn_testReturnTable
GO
create function fn_testReturnTable
(
@id int
)
RETURNS @t TABLE
(
id int,Name sysname
)
AS
BEGIN
insert into @t(id,name)
select id,name from sysobjects where id =@id
RETURN
END
/*
查看是否执行在该库下,有时切换数据库以后,执行到其他库下了
--sp_helptext fn_testReturnTable
SELECT * FROM fn_testReturnTable(5) */ ---------------------------------------------------------------------------------------------
--定义了一个标量值函数,此函数可以返回符合id等于参数的所有行的name信息。
Create FUNCTION fn_testReturnTable
(
@id int
)
RETURNS nvarchar(256)
AS
BEGIN
declare @name nvarchar(256)
select @name=name from sysobjects where id =@id
return @name
END /*
SELECT * FROM fn_testReturnTable(5)
*/
---------------------------------------------------------------------------------------------
--函数功能:拆分字符串为单个字符,放入数据表中,并返回
/*
将字符串分解为单个字符串的方法
*/
--drop function fn_SplitStringToCharReturnTable
GO
CREATE FUNCTION dbo.fn_SplitStringToCharReturnTable
(
@str NVARCHAR(MAX)
)
RETURNS @tmp TABLE
(
--[t] [NVARCHAR](2) NULL
[tb_ReturnTable] [NVARCHAR](2) NULL
)
AS
BEGIN
DECLARE @p INT=1,@strlen INT=LEN(@str) --@p计数器,@strlen,函数中参数的长度
WHILE @p <= @strlen
BEGIN
INSERT @tmp VALUES(substring(@str,@p,1))
SET @p = @p + 1
END
RETURN
END
/*
调用
SELECT [tb_ReturnTable] from dbo.fn_SplitStringToCharReturnTable('GraceLin is a beautiful girl and she lives in ZS.')
*/
--大致的写法就是这种结构(此时暂时称为语法吧)
--表值型函数定义
create function dbo.fn_test(
@a int,@b int
)
returns table
as
begin
declare @tmp table(keyid int,info varchar(30))
/*sql脚本*/ return @tmp
end
--标量型函数定义
create function dbo.fn_test(
@a int,@b int
)
returns int
as
begin
declare @tmp int
/*sql脚本*/ return @tmp
end --修改自定义函数方法,只需将create 变更为alter
--输入相关的脚本内容即可
alter function dbo.fn_test(
@a int,@b int
)
returns int
as
begin
declare @tmp int
/*sql脚本*/ return @tmp
end --删除自定义函数的方法
drop function dbo_fn_test

UDF_表值函数与标量函数的区别_分割字符串成单个的字符并返回表(插入到表中)的更多相关文章

  1. javascript 中 split 函数分割字符串成数组

    分割字符串成数组的方法有很多,不过使用最多的还是split函数 <script language="javascript"> str="2,2,3,5,6,6 ...

  2. SQL Server中自定义函数:用指定的分隔符号分割字符串

    微软SQL Server数据库中包含了很多内置的函数,入下图: 它们用于处理日期.数学.元数据.字符串等. 其中最为常用的就是处理字符串,里面包含了CharIndex()等函数,非常方便使用. 但是对 ...

  3. sqlserver几个好用的表值函数和标量函数

    获取逗号风格的字符串中的某一个 比如'1,2,4,5,6' 第三个就是4 CREATE function [dbo].[Get_StrArrayStrOfIndex] ( @str nvarchar( ...

  4. SQL 表值函数/标量函数

    表值函数 定义表值函数 --定义表值函数 CREATE FUNCTION GetStuScore(@Stu_ID INT ) RETURNS TABLE AS RETURN (SELECT ),[St ...

  5. SQL SERVER中用户定义标量函数(scalar user defined function)的性能问题

    用户定义函数(UDF)分类  SQL SERVER中的用户定义函数(User Defined Functions 简称UDF)分为标量函数(Scalar-Valued Function)和表值函数(T ...

  6. T-SQL编程 —— 用户自定义函数(标量函数)

    用户自定义函数 在使用SQL server的时候,除了其内置的函数之外,还允许用户根据需要自己定义函数.根据用户定义函数返回值的类型,可以将用户定义的函数分为三个类别: 返回值为可更新表的函数 如果用 ...

  7. SQL Server 性能优化之——T-SQL TVF和标量函数

    阅读导航 1. TVF(表-值行数Table-Valued Functions)         a. 创建TVF         b. 使用TVF的低性能T-SQL         c. 使用临时表 ...

  8. linux fork函数与vfork函数,exit,_exit区别

    man vfork: NAME vfork - create a child process and block parent SYNOPSIS #include <sys/types.h> ...

  9. Presto 标量函数注册和调用过程简述

    在Presto 函数开发一文中已经介绍过如何进行函数开发,本文主要讲述标量函数(Scalar Function)实现之后,是如何在Presto内部进行注册和被调用的.主要讲述标量函数是因为:三类函数的 ...

随机推荐

  1. iOS 数组遍历过程中移除

    参考:https://blog.csdn.net/u011619283/article/details/53135502 常见crash 原因是数组在移除元素后,继续遍历会有越界问题. 解决思路: 遍 ...

  2. D:Sequence Swapping

    BaoBao has just found a strange sequence {<, >, <, >, , <, >} of length in his poc ...

  3. poj3177 无向连通图加多少条边变成边双连通图

    Redundant Paths Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 15752   Accepted: 6609 ...

  4. php操作redis常用方法

    1,connect 描述:实例连接到一个Redis. 参数:host: string,port: int 返回值:BOOL 成功返回:TRUE;失败返回:FALSE 示例: <?php $red ...

  5. PHP SQL预处理

    php预处理查询 $query='insert into p1(info) values(?)'; $query2='select info from p1 where id=?'; $country ...

  6. FPGA内部硬件结构简介

    我们知道FPGA内部有很多可供用户任意配置的资源,其中包括:可编程逻辑.可编程I/O.互连线.IP核等资源,很多学过数字电路的人都知道与或非门可以构成几乎所有的数字电路,但是FPGA内部最基本的主要单 ...

  7. COLA的扩展性使用和源码研究

    cola扩展点使用和设计初探 封装变化,可灵活应对程序的需求变化. 扩展点使用 步骤: 定义扩展点接口,类型可以是校验器,转换器,实体: 必须以ExtPt结尾,表示一个扩展点. 比如,我定义一个云枢的 ...

  8. 实验二:Linux系统简单文件操作命令

    項目 内容 这个作业属于哪个课程() 课程链接 这个作业的要求在哪里 实验要求 学号-姓名 17043133-木腾飞 作业学习目标 学习在Linux系统终端下进行命令行操作: 学习掌握常用命令行操作并 ...

  9. Beta冲刺——5.26

    这个作业属于哪个课程 软件工程 这个作业要求在哪里 Beta冲刺 这个作业的目标 Beta冲刺 作业正文 正文 github链接 项目地址 其他参考文献 无 一.会议内容 1.组员一起学习Git分支管 ...

  10. 使用turtle库画同切圆

    import turtle as t t.setup(600,600,None,None) t.pensize(5) t.penup() t.pendown() t.pencolor("re ...