UDF_表值函数与标量函数的区别_分割字符串成单个的字符并返回表(插入到表中)
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_表值函数与标量函数的区别_分割字符串成单个的字符并返回表(插入到表中)的更多相关文章
- javascript 中 split 函数分割字符串成数组
分割字符串成数组的方法有很多,不过使用最多的还是split函数 <script language="javascript"> str="2,2,3,5,6,6 ...
- SQL Server中自定义函数:用指定的分隔符号分割字符串
微软SQL Server数据库中包含了很多内置的函数,入下图: 它们用于处理日期.数学.元数据.字符串等. 其中最为常用的就是处理字符串,里面包含了CharIndex()等函数,非常方便使用. 但是对 ...
- sqlserver几个好用的表值函数和标量函数
获取逗号风格的字符串中的某一个 比如'1,2,4,5,6' 第三个就是4 CREATE function [dbo].[Get_StrArrayStrOfIndex] ( @str nvarchar( ...
- SQL 表值函数/标量函数
表值函数 定义表值函数 --定义表值函数 CREATE FUNCTION GetStuScore(@Stu_ID INT ) RETURNS TABLE AS RETURN (SELECT ),[St ...
- SQL SERVER中用户定义标量函数(scalar user defined function)的性能问题
用户定义函数(UDF)分类 SQL SERVER中的用户定义函数(User Defined Functions 简称UDF)分为标量函数(Scalar-Valued Function)和表值函数(T ...
- T-SQL编程 —— 用户自定义函数(标量函数)
用户自定义函数 在使用SQL server的时候,除了其内置的函数之外,还允许用户根据需要自己定义函数.根据用户定义函数返回值的类型,可以将用户定义的函数分为三个类别: 返回值为可更新表的函数 如果用 ...
- SQL Server 性能优化之——T-SQL TVF和标量函数
阅读导航 1. TVF(表-值行数Table-Valued Functions) a. 创建TVF b. 使用TVF的低性能T-SQL c. 使用临时表 ...
- linux fork函数与vfork函数,exit,_exit区别
man vfork: NAME vfork - create a child process and block parent SYNOPSIS #include <sys/types.h> ...
- Presto 标量函数注册和调用过程简述
在Presto 函数开发一文中已经介绍过如何进行函数开发,本文主要讲述标量函数(Scalar Function)实现之后,是如何在Presto内部进行注册和被调用的.主要讲述标量函数是因为:三类函数的 ...
随机推荐
- HTML使用正则验证
制作HTML前台用户验证等,需要对用户名或者密码进行验证,这时使用正则表达式能够精确地对text进行限制. 具体在HTML中的运用代码如下: 转自 https://blog.csdn.net/weix ...
- UVA10779 Collectors Problem
题目链接:https://cn.vjudge.net/problem/UVA-10779 前言: 本题是关于姜志豪<网络流的一些建模方法>的笔记. 知识点: 最大流 题意摘抄: \(Bob ...
- CF915D Almost Acyclic Graph
题目链接:http://codeforces.com/contest/915/problem/D 题目大意: 给出一个\(n\)个结点\(m\)条边的有向图(无自环.无重边,2 ≤ n ≤ 500, ...
- LeetCode上的SQL练习
184. 部门工资最高的员工 SELECT D. NAME Department, E. NAME Employee, E.Salary FROM -- 内连接两张查询表 Employee E INN ...
- XXX_ProductCRUD的项目结构与配置文件
MVC_ProductCRUD Hibernate_ProductCRUD 项目结构 ...
- vue2.0+mint-ui 仿资讯类顶导航内容联动优化
<template><div><div class="navbox"><div class="nav" id=&quo ...
- Align Content Properties
How to align the items of the flexible element? <!DOCTYPE html> <html lang="en"&g ...
- .NET Core HttpClientFactory+Consul实现服务发现
前言 上篇文章.NET Core HttpClient+Consul实现服务发现提到过,HttpClient存在套接字延迟释放的问题,高并发情况导致端口号被耗尽引起服务器拒绝服务的问题.好在微软意识到 ...
- zookeeper实现分布式锁总结,看这一篇足矣(设计模式应用实战)
分布式锁纵观网络各种各样的帖子层出不穷,笔者查阅很多资料发现一个问题,有些文章只写原理并没有具体实现,有些文章虽然写了实现但是并不全面 借这个周末给大家做一个总结,代码拿来就可以用并且每一种实现都经过 ...
- Maven快速入门(二)手动创建maven项目hellomaven
之前讲过Maven介绍及环境搭建,介绍了maven的作用和如何搭建maven环境.接下来就以一个helloworld的例子来说一说如何创建maven项目以及maven项目的项目结构,最后讲maven如 ...