Sql Server创建函数
在使用数据库的过程中,往往我们需要对有的数据先进行计算,然后再查询出来,所以我们就需要创建函数来完成这项任务,在数据库的Programmability(如图1)下面的Function中创建函数(如图2)
(图1)
(图2)
在这里创建的函数一般有两种返回类型,一种是返回一个集合(数据表),另一种是直接返回一个字符串(如图3)
(图3)
下面是两种函数的创建实例
1、集合
创建函数fn_selectWorkTime
Create FUNCTION fn_selectWorkTime
(
@plantID int
, @CheckTime datetime --考勤时间
, @deptID int --部门
, @wShop int --工段
, @roleID int --岗位
, @wGroup int --班组
, @uID int --员工
)
RETURNS @retValue Table (atWork datetime, offWork datetime)
AS
BEGIN
Declare @onTime datetime
, @offTime datetime
--......
Set @onTime = '2016-07-01 08:00'
Set @offTime = '2016-07-01 17:00'
Insert Into @retValue(atWork, offWork)
Values(@onTime1, @offTime1, @isSunday, @atDinner, @offDinner, @atLunch, @offLunch, @hasStdTime)
Return
END
在存储过程中调用所创建的函数
Select *
From dbo.fn_calStdAttAll(@plantid, @time1, @deptID, @wShop, @roleID, @wGroup, @uid5)
2、字符串
创建函数 fn_calStdAtt
CREATE FUNCTION fn_calStdAtt
(
@CheckTime datetime --考勤时间
, @deptID int --部门
, @wShop int --工段
, @roleID int --岗位
, @wGroup int --班组
, @uID int --员工
, @which char(1) --I:上班时间,O:下班时间
)
RETURNS varchar(20)
AS
BEGIN
Declare @retValue datetime
--......
Set @retValue = '2016-07-01 08:00'
Return Convert(varchar(20), @retValue, 120)
END
在存储过程中调用所创建的函数
select dbo.fn_calStdAtt (@CheckTime, @deptID, @wShop, @roleID, @wGroup, @uID, @which)
以上只是个人在开发中的总结,不足之处望大家多指教
Sql Server创建函数的更多相关文章
- SQL server 创建 修改表格 及表格基本增删改查 及 高级查询 及 (数学、字符串、日期时间)函数[转]
SQL server 创建 修改表格 及表格基本增删改查 及 高级查询 及 (数学.字符串.日期时间)函数 --创建表格 create table aa ( UserName varchar(50 ...
- SQL Server 聚合函数算法优化技巧
Sql server聚合函数在实际工作中应对各种需求使用的还是很广泛的,对于聚合函数的优化自然也就成为了一个重点,一个程序优化的好不好直接决定了这个程序的声明周期.Sql server聚合函数对一组值 ...
- SQL Server用户自定义函数
用户自定义函数不能用于执行一系列改变数据库状态的操作,但它可以像系统 函数一样在查询或存储过程等的程序段中使用,也可以像存储过程一样通过EXECUTE 命令来执行.在 SQL Server 中根据函数 ...
- 13、SQL Server 自定义函数
SQL Server 自定义函数 在SQL Server中不仅可以使用系统函数(如:聚合函数,字符串函数,时间日期函数等)还可以根据需要自定义函数. 自定义函数分为标量值函数和表值函数. 其中,标量值 ...
- SQL Server 创建表分区
原文:SQL Server 创建表分区 先准备测试表 CREATE TABLE [dbo].[Employee] ( EmployeeNo ,) PRIMARY KEY, EmployeeName ) ...
- sql server自定义函数学习笔记
sql server中函数分别有:表值函数.标量函数.聚合函数.系统函数.这些函数中除系统函数外其他函数都需要用户进行自定义. 一.表值函数 简单表值函数 创建 create function fu_ ...
- SQL Server 自定义函数(Function)——参数默认值
sql server 自定义函数分为三种类型:标量函数(Scalar Function).内嵌表值函数(Inline Function).多声明表值函数(Multi-Statement Functio ...
- SQL Server创建、更改和删除架构
SQL Server创建架构 学习如何使用SQL Server CREATE SCHEMA在当前数据库中创建新架构. SQL Server中的架构是什么 架构是包括表,视图,触发器,存储过程,索引等在 ...
- SQL Server系统函数:元数据函数
原文:SQL Server系统函数:元数据函数 1.列的长度.列名 --列的长度 select COL_LENGTH('dbo.wct', --表名 'wcid') --列名 --列名 select ...
随机推荐
- 从BSP模型到Apache Hama
一.什么是BSP模型 概述 BSP(Bulk Synchronous Parallel,整体同步并行计算模型)是一种并行计算模型,由英国计算机科学家Viliant在上世纪80年代提出.Google发布 ...
- BenUtils组件和DbUtils组件
BenUtils组件和DbUtils组件 [TOC] 1.BenUtils组件 1.1.简介 程序中对javabean的操作很频繁,所有Apache提供了一套开源api,方便javabean的操作!即 ...
- swt shell设置窗口位于屏幕中间
/** * 设置窗口位于屏幕中间 * @param shell 要调整位置的窗口对象 */ public static void center(Shell shell) ...
- Linux进程学习
进程与进程管理: 清屏:system("clear"); //#include <signal.h> 进程环境与进程属性: 什么是进程:简单的说,进程就是程序的一次执行 ...
- C# Webbrowser 常用方法及多线程调用
设置控件的值 /// <summary> /// 根据ID,NAME双重判断并设置值 /// </summary> /// <param name="tagNa ...
- java之并发编程线程池的学习
如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间. java.uitl.concurrent.Thre ...
- 如何设置Oracle客户端与服务器的字符集一致
查看 Oracle 服务器字符集 select userenv('language') from dual; 设置Oracle客户端字符集 添加环境变量NLS_LANG 值与服务器的Oracle服务器 ...
- day7_subprocess模块和面向对象,反射
常用subprocess方法示例 #执行命令,返回命令执行状态 , 0 or 非0>>> retcode = subprocess.call(["ls", &qu ...
- 在Windows平台上绿色安装postgresQL
本文使用案例:postgresql-9.6.0-beta3-windows-x64-binaries.rar (win64免安装) 环境:window10,postgresql-9.6.0-beta3 ...
- [转]别再抱怨了,国内这么多优秀的Android资源你都知道吗?
因为一些大家都知道的原因,android很多官方出品的优秀开发资源在国内无法访问. 国内的同行们对此也做出了很多努力,有很多朋友通过各种手段把很多优秀的资源搬运到了国内,为国内android开发者提供 ...