概述
在SQL Server中系統也自帶了許多函數,比如聚合函數count、sum、min等,但有的時候,這些函數並不能滿足我們的使用,這個時候我們就得自己定義一個函數
函數和存儲過程的區別
存儲過程是用戶定義的一系列SQL語句的集合,而函數通常是數據庫已定義的方法,具體區別如下:
- 對於存儲過程來說可以返回參數,而函數只能返回值或者表對象.
- 函數必須有返回值,存儲過程可有可無
- 存儲過程一般是作爲一個獨立的部分來執行,而函數可以作爲查詢語句的一部分來調用.
創建函數
建立一表用來做練習例子:
字段名稱 | 字段類型 | 字段描述 |
---|---|---|
ID | int | |
Name | nvarchar(50) | |
Sex | bit |
自定義函數:
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]