表值函数有两种形式:
1.内联表值函数
Create FUNCTION Funtion_name
(  --这里定义传入参数以及类型
)
RETURNS TABLE
AS
RETURN
(--这里直接写查询语句,返回结果就是查询语句的结果集
)
GO
示例:
CREATE FUNCTION F_BConversion
(  @NUM1 INT,@NUM2 INT
)
RETURNS TABLE
AS
RETURN
(SELECT @NUM1+@NUM2 Addition,@NUM1-@NUM2 Subtration,@NUM1*@NUM2 Multiplication,@NUM1/@NUM2 Division
)
GO
这个函数通过传入两个数字分别计算这两个数字加减乘除的结果,表值函数的使用调用方式就相当于表一样,可以直接select * from,也可以和其他表做关联, 只不过后面多个传入参数罢了!
2.多语句表值函数
CREATE FUNCTION Funtion_name
(--这里定义传入参数及类型
)
RETURNS
@table_name TABLE
(--这里定义@table_name的列名
)
AS
BEGIN--这里写sql语句并且将最终需要返回的结果集塞到@table_name 这张表里面RETURN
END
GO
示例:
ALTER FUNCTION F_TConversion
(@NUM INT
)
RETURNS
@t_table TABLE
([Binary] varchar(64),Octal varchar(16),Hexadecimal varchar(8)
)
AS
BEGINDECLARE @RESULT2 VARCHAR(500)='',@RESULT8 VARCHAR(500)='',@RESULT16 VARCHAR(500)=''; WITH CTE AS( SELECT @NUM/2 D2,@NUM%2 S2,@NUM/8 D8,@NUM%8 S8,@NUM/16 D16,@NUM%16 S16,1 [INDEX] UNION ALL SELECT D2/2 , D2%2,D8/8 , D8%8,D16/16 , D16%16,[INDEX]+1 FROM CTE WHERE D2>0 ) SELECT @RESULT2+=CAST(S2 AS VARCHAR(1)),@RESULT8+=CASE WHEN D8=0 AND S8=0 THEN '' ELSE CAST(S8 AS VARCHAR(1)) END,@RESULT16+=CASE WHEN D16=0 AND S16=0 THEN ''ELSE CASE CAST(S16 AS VARCHAR(5))WHEN '10' THEN 'A' WHEN '11' THEN 'B' WHEN '12' THEN 'C' WHEN '13' THEN 'D' WHEN '14' THEN 'E' WHEN '15' THEN 'F' ELSE CAST(S16 AS VARCHAR(5))ENDENDFROM CTE ORDER BY [INDEX] DESCINSERT INTO @t_tableSELECT @RESULT2,@RESULT8,@RESULT16RETURN
END
GO
这个函数是根据我前段时间写的一个关于进制转换的列子改编的,这里通过传入一个十进制的数字,分别返回对应的二进制、八进制、十六进制。
标量值函数:
CREATE FUNCTION function_name
(--这里定义传入参数及类型
)
RETURNS --这里需要定义返回值的类型
AS
BEGIN--定义返回值--写sql逻辑--返回返回值
END
GO
示例:
CREATE FUNCTION F_Conversion
(@NUM INT,@TYPE INT
)
RETURNS VARCHAR(100)
AS
BEGINDECLARE @RESULT VARCHAR(500)=''; WITH CTE AS( SELECT @NUM/@type D,@NUM%@type S,1 [INDEX] UNION ALL SELECT D/@type , D%@type,[INDEX]+1 FROM CTE WHERE D>0 ) SELECT @RESULT+=CASE CAST(S AS VARCHAR(5)) WHEN '10' THEN 'A' WHEN '11' THEN 'B' WHEN '12' THEN 'C' WHEN '13' THEN 'D' WHEN '14' THEN 'E' WHEN '15' THEN 'F' ELSE CAST(S AS VARCHAR(5)) END FROM CTE ORDER BY [INDEX] DESC RETURN @RESULT
END
GO
这个函数传入两个参数都是int型,分别是整数和返回的进制类型,这个例子将正整数10转换成对应的二进制。

浅谈表值函数和标量值函数相关推荐

  1. sql server表值函数与标量值函数实际应用

    sql中的表值函数与标量值函数区别与用法 一 .表值函数又分为内联函数与多语句函数 (1)内联函数就是没有函数主体表是单个 SELECT. 下面是一个不带输入参数的表值函数 create functi ...

  2. 表值函数,标量值函数详解

    顾名思义:表值函数返回的是表,而标量值函数可以返回基类型 表值函数 用户定义表值函数返回 table 数据类型.对于内联表值函数,没有函数主体:表是单个 SELECT 语句的结果集. 以下示例创建了一 ...

  3. 表值函数和标量值函数

    Sql server 的表值函数是返回一个Table类型,table类型相当与一张存储在内存中的一张虚拟表. 实现表值函数很简单: 下面是一个不带输入参数的表值函数 create function t ...

  4. sqlserver中的表值函数和标量值函数

    顾名思义:表值函数返回的是表,而标量值函数可以返回基类型 一.表值函数 用户定义表值函数返回 table 数据类型,表是单个 SELECT 语句的结果集. 以下示例: CREATE FUNCTION ...

  5. 为什么python打包的应用那么大_浅谈python3打包与拆包在函数的应用详解

    1.序列(拆包) *用作序列拆包:*可对字符串.列表.集合.元组.字典.数字元素等序列进行拆包 print(*(1,2,3,4,5,6)) #1 2 3 4 5 6 print(*[1,2,3,4,5 ...

  6. Linux系统常用函数,浅谈linux下的一些常用函数的总结(必看篇)

    1.exit()函数 exit(int n)  其实就是直接退出程序, 因为默认的标准程序入口为int main(int argc, char** argv),返回值是int型的. 一般在shell下 ...

  7. gather torch_浅谈Pytorch中的torch.gather函数的含义

    pytorch中的gather函数 pytorch比tensorflow更加编程友好,所以准备用pytorch试着做最近要做的一些实验. 立个flag开始学习pytorch,新开一个分类整理学习pyt ...

  8. 数据库sql创建标量值函数_使用JSON_VALUE()从JSON数据中提取标量值

    数据库sql创建标量值函数 In this article, we will explore JSON_VALUE() function in SQL Server to extract scalar ...

  9. SQL Server 2008 创建标量值函数、存储过程

    在运用数据库的过程中,需要用到标量值函数以及存储过程. 仅以SQL Server 2008为例,对标量值函数以及存储过程的流程进行说明(标量值函数以及存储过程当中的代码不在这里讲述) 标量值函数 打开 ...

最新文章

  1. 分享15个堪称神器的资源网站,让你万事无忧!
  2. MyEclipse Spring 学习总结一 Spring IOC容器
  3. Spring boot 如何读取配置文件properties中的信息
  4. centos 系统重新安装ssh
  5. 本周值得读的15篇AI论文,还有源码搭配服用
  6. 用java程序操作hadoop,intellij IDEA和maven的使用
  7. extract local variale 和 jsp中查找选中内容的快捷键
  8. Angular TView和LView数据结构
  9. JavaScript substr() 方法
  10. exec和sp_executesql
  11. FinTech专题:支付平台建设资金底线防火墙的杀手级设计方案
  12. 标准盒子与IE盒子的区别
  13. 自定义View/ViewGroup的步骤和实现
  14. [转载] python获取set中某些元素_取集合中元素_Python Set集合
  15. 容灾技术中的数据一致性保障
  16. 循环buffer的实现_Go并发编程-Channel的设计实现
  17. Nfine框架基本使用--初学者的总结
  18. 计算机网络哈勃,「实时热点」美国哈勃已脱机一星期:NASA已尝试修复3次,均以失败告终...
  19. 我与计算机1000字大学,计算机系大学生助学金申请书(1000字)
  20. 科达制造和盐湖股份的事儿

热门文章

  1. 【MFC学习笔记】常见问题解答
  2. 【真题分享】2021京东春招java开发面试
  3. 华为OD机试题,用 Java 解【自动曝光】问题 | 含解题说明
  4. 创作者运营—创作者课程开发思路
  5. 手机dpi修改工具_【原创教程】修改分辨率和dpi 让安卓手机不再卡顿
  6. Mp3Player VS Diskman(2)
  7. Android分包MultiDex原理详解
  8. c android显示gif动画,MFC显示GIF动画图片
  9. RabbitMQ入门及笔记
  10. NVMe over TCP 香吗?