学习笔记----SQL Server自定义函数

概述

在SQL Server中系统也自带了许多函数,比如聚合函数count、sum、min等,但有的时候,这些函数并不能满足我们的使用,这个时候我们就得自己定义一个函数

函数和存储过程的区别

存储过程是用户定义的一系列SQL语句的集合,而函数通常是数据库已定义的方法,具体区别如下:

  1. 对于存储过程来说可以返回参数,而函数只能返回值或者表对象.
  2. 函数必须有返回值,存储过程可有可无
  3. 存储过程一般是作为一个独立的部分来执行,而函数可以作为查询语句的一部分来调用.
    也就是说,当我们需要返回一个值的时候,我们就可以用到函数。需要返回多个值的时候,就用存储过程

创建函数

建立一表用来做练习例子:

字段名称字段类型字段描述
IDint
Namenvarchar(50)
Sexbit

需求:我们在存储用户信息的时候,性别这个字段一般存的都是数字,用1代表男,2代表女。因为数字比汉字占用内存小,查询速度快,所以在存储这些数据的时候,我们一般都会用数字来代替。
但是查询出来的结果我们是要显示男女的,所以下面的例子就是把1和2在查询出结果的时候,转换成对应的男女
自定义函数:

go
create function ConvertToSex(
	@sex bit
)
returns varchar(4)
as
begin
	declare @rSex varchar(4)
	if(@sex=1)
		select @rSex='男'
	else
		select @rSex='女'
	return @rSex
end
``
调用函数:
```sql
select *, [dbo].[ConvertToSex](sex) from [dbo].[Customers]

执行结果:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值