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. Java——日期格式化YYYYMMdd与yyyyMMdd的区别

    public static void main(String[] args) { //YYYY 是表示:当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,那么这周就算入下一年. //20 ...

  2. android小Demo--圆球跟随手指轨迹移动

    eatwhatApp的客户端基本实现,会再后续进行整改,今天做一个在网上找到的小Demo,让屏幕中出现一个圆球,并跟随手指移动. 写个java类DrawView继承于View: public clas ...

  3. 初窥 BB-Framework

     

  4. Bank3

    Account: package banking3; //账户 public class Account { private double balance;// 账户余额 public Account ...

  5. 集合概述及Collection接口的常用方法

    java集合像是一种容器,可以动态的把多个对象的引用放到容器中 java的集合类可以用于存储数量不等的多个对象,还可以用于保存具有映射关系的关联数组 package com.aff.coll; imp ...

  6. nacos 配置

    具体请访问 https://nacos.io/zh-cn/docs/what-is-nacos.html 网站查看文档,现在开始使用Nacos. 1. 下载Nacos源码 Nacos可以通过 http ...

  7. WEB APPLICATION PENETRATION TESTING NOTES

    此文转载 XXE VALID USE CASE This is a nonmalicious example of how external entities are used: <?xml v ...

  8. 附021.Traefik-ingress部署及使用

    一 Helm部署 1.1 获取资源 [root@master01 ~]# mkdir ingress [root@master01 ~]# cd ingress/ [root@master01 ing ...

  9. CVE-2020-0796永恒之黑复现POC EXP以及修复方案

    描述: 北京时间3月12日,针对最新披露的SMB远程代码执行漏洞(CVE-2020-0796),微软官方发布了针对Windows 10/Server禁用SMBv3(SMB 3.1.1版本)协议压缩的安 ...

  10. Nginx 笔记(二)nginx常用的命令和配置文件

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1.nginx常用的命令 (1)启动命令 在/usr/local/nginx/sbin 目录下执行 ./ ...