`
ywChen
  • 浏览: 120121 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

T-SQL 自定义函数

SQL 
阅读更多

 

初始化创建一个student表

 

sno sname ssex sage sdept
1001 张三 20 C1
1002 李四 22 C2
1003 李莉 20 C3
1004 陈旭 22 C1
1005 陈宇 23 C3
1006 王五 21 C1
1007 张莉莉 20 C2
1008 王晓 23 C3
1009 张斌 22 C1
1010 张淑芳 20 C2
1011 李天才 21 C3

 

1).创建标量函数的语法格式

 

 

CREATE FUNCTION [ schema_name. ] function_name 
( [ { @parameter_name [ AS ][ type_schema_name. ] parameter_data_type 
    [ = default ] } 
    [ ,...n ]
  ]
)
RETURNS return_data_type
    [ WITH <function_option> [ ,...n ] ]
    [ AS ]
    BEGIN 
                function_body 
        RETURN scalar_expression
    END
[ ; ]
 

 

其中参数说明如下:

   (1)function_name :用户自定义函数的名称,该名称在数据库中必须唯一。

   (2)@parameter_name :用户自定义的参数,如果函数的参数有默认值,在调用该函数是必须指定“DEFAULT”关键字才能获得默认值。

   (3)parameter_data_type :参数的l数据类型。

   (4)return_data_type:是标量用户自定义函数的返回值类型。

   (5) function_body :有一系列T-SQL语句组成的函数体。

   (6)scalar_expression:指定标量返回的数量值。


   【例】 统计某个系的平均年龄

 

 

 CREATE FUNCTION [dbo].[stu_info](@sdept varchar(10))
        RETURNS float
        AS 
         BEGIN 
           declare @sage float
           set @sage= (select avg(sage) from student where sdept=@sdept  group by sdept)
           RETURN @sage
        END
  ------------------------------------
SELECT dbo.stu_info('C1') as age

 

age
21

 

 2)创建直接表值函数语法格式 

 

 

CREATE FUNCTION [ schema_name. ] function_name 
( [ { @parameter_name [ AS ][ type_schema_name. ] parameter_data_type 
    [ = default ] } 
    [ ,...n ]
  ]
)
RETURNS TABLE
    [ WITH <function_option> [ ,...n ] ]
    [ AS ]
        RETURN (select_statement[])
   [ ; ]
 

 

参数说明如下:

 (1)TABLE:指定返回值为一个表。

 (2)select_statement:单个select语句确定返回的表的数据。


  【例】返回系别为C1的学生信息

 

 

CREATE FUNCTION stu_info(@sdept varchar(10))
RETURNS TABLE 
AS 
RETURN(SELECT * FROM dbo.student WHERE sdept=@sdept)
------------------------------
SELECT * FROM dbo.stu_info('C1')
 

 

 

 

3)创建多语句表值函数语法格式 

 

CREATE FUNCTION [ schema_name. ] function_name 
( [ { @parameter_name [ AS ][ type_schema_name. ] parameter_data_type 
    [ = default ] } 
    [ ,...n ]
  ]
)
RETURNS @return_variable TABLE   <ftable_type_definination> 
     [ WITH <function_option> [ ,...n ] ]
    [ AS ]
    BEGIN 
                function_body 
        RETURN scalar_expression
    END
[ ; ]
 

参数说明如下:

 

 (1)@return_variable:一个TABLE类型的变量用于存储和累积返回的表中的数据行。


【例】 查询年龄大于22的学生信息

 

CREATE FUNCTION stu_hage(@age int)
RETURNS @height_age TABLE(sno int ,sname varchar(10),ssex varchar(10),sage int ,sdept varchar(10)) 
AS 
BEGIN
  INSERT @height_age 
  SELECT * FROM  dbo.student where sage>@age
RETURN
END
------------------------
SELECT * FROM dbo.stu_hage(22)
 

sno sname ssex sage sdept
1005 陈宇 23 C3
1008 王晓 23 C3

 

sno sname ssex sage sdept
1001 张三 .. .. ..
1004 陈旭 .. .. ..
1006 王五 .. .. ..
1009 张斌 .. .. ..
分享到:
评论

相关推荐

    Inside Microsoft SQL Server 2008 T-SQL Programming.pdf

    - **函数**:探讨了标量函数和表值函数的区别,以及如何在T-SQL中使用自定义函数来增强查询的灵活性和重用性。 - **事务处理**:阐述了事务的基本概念及其在SQL Server中的实现方式,包括如何使用BEGIN TRANSACTION...

    Microsoft SQL Server2005技术内幕:T-SQL查询(中文PDF版)part1

     通过本书,你将深入了解t-sql的高级用法,包括触发器、用户自定义函数、异常处理等。该书解释并比较了sql server 2000和sql server 2005在数据库开发相关问题上的解决方案,深入讨论了sql server 2005中新增的t-...

    SQL、T-SQL与PL-SQL的区别

    此外,T-SQL还对SQL做了许多补允,提供了数据库脚本语言,即类似C、Basic和Pascal的基本功能,如变量说明、流控制语言、函数函数等。T-SQL的出现是为了满足SQL SERVER的特定需求,它提供了许多特定的功能和优化,...

    实验二 T-SQL语言基础

    本实验主要关注T-SQL的基础知识,包括基本语法格式、运算符与表达式、基本语句以及系统函数和用户定义标量函数的运用。下面我们将逐一深入探讨这些内容。 ### 1. T-SQL基本语法格式 T-SQL的语法结构主要包括声明、...

    T-SQL流程控制和函数

    自定义函数是在T-SQL中定义的一种存储过程,用于执行特定任务,并可返回一个值或表。 - **标量函数**:返回单个值的函数。 - 示例:`CREATE FUNCTION udf_GetCPName (@num char(6)) RETURNS varchar(30) ...` - **...

    [电子书] SQL Server 2012 T-SQL 实用技巧 (英文版)

    6. **存储过程和函数**:介绍自定义存储过程和函数的创建、调用和管理,这些是数据库中封装业务逻辑和提高代码复用的关键元素。 7. **事务与并发控制**:讨论事务的基本概念,包括ACID属性,以及如何处理并发问题,...

    T-SQL学习资料(CSDN下载)集合

    4. 函数(FUNCTION):分为内置函数和自定义函数,它们可以返回单个值或一组值,用于数据处理和计算。 "T-SQL语法参考手册.exe" 是一个可执行文件,可能是微软或第三方提供的T-SQL语法大全,包含所有T-SQL关键字、...

    MICROSOFT SQL SERVER 2008技术内幕:T-SQL语言基础.pdf

    T-SQL提供了大量的内置函数,包括聚合函数、字符串函数、数学函数、日期和时间函数、转换函数等,这些函数大大丰富了查询和数据处理的能力。 七、流程控制语句 为了执行程序式逻辑,T-SQL提供了IF...ELSE、WHILE、...

    Microsoft SQL Server 2005 技术内幕:T-SQL程序设计(CHM格式)

    通过本书,你将深入了解T-SQL的高级用法,包括触发器、用户自定义函数、异常处理等。该书解释并比较了SQL Server 2000和SQL Server 2005在数据库开发相关问题上的解决方案,深入讨论了SQL Server 2005中新增的T-...

    SQL自定义函数讲解

    本文将深入探讨SQL自定义函数的分类、用途以及如何进行相关操作。 首先,我们要理解函数的分类。SQL函数主要分为三类:系统函数、用户自定义函数(UDF)和聚合函数。系统函数是SQL服务器预先定义好的,如数学函数、...

    sql server 2005 技术内幕t-sql查询源码

    6. **触发器与函数**:讨论触发器(TRIGGER)的原理和应用,以及用户自定义函数(UDF),包括标量函数和表值函数的创建和使用。 7. **高级查询技巧**:可能涵盖窗口函数(ROW_NUMBER、RANK、DENSE_RANK等)、递归...

    自定义函数

    ### 自定义函数在SQL中的应用 #### 一、引言 在数据库操作中,SQL(Structured Query Language)作为处理关系型数据库的标准语言被广泛应用。为了提高SQL查询的灵活性与复用性,许多数据库系统提供了创建自定义...

    SQL Server2000设计与T-SQL编程

    内置函数可以快速处理常见的计算和转换任务,而自定义函数则允许开发者扩展T-SQL的功能,以满足特定需求。读者将学会如何创建和使用各种函数,包括标量函数、表值函数和聚合函数。 除了基本的SQL操作,本书可能还会...

    T-Sql编程交成及案例

    函数在T-SQL中用于计算或返回特定值,可以分为内置函数和自定义函数。内置函数如CONVERT、DATEADD等,提供常见的数据转换和日期运算。自定义函数允许开发者创建自己的函数,返回单个或多个值,可以是标量值( Scalar...

    T-SQL.rar_t-sql

    10. **函数**:T-SQL包含内置函数,如字符串函数、日期/时间函数、数学函数等,以及用户自定义函数(UDF),可以扩展T-SQL的功能。 总的来说,T-SQL是SQL Server中的核心语言,它涵盖了数据查询、插入、更新、删除...

    SQL SERVER T-SQL

    - **用户定义函数**:教授如何编写自定义函数来执行特定任务或计算,提高代码复用性和可维护性。 - **存储过程**:讲解如何创建和调用存储过程,封装复杂操作流程,提高安全性及执行效率。 #### 七、游标与触发器 -...

    Microsoft SQL Server2005技术内幕:T-SQL查询(中文PDF版)part3

     通过本书,你将深入了解t-sql的高级用法,包括触发器、用户自定义函数、异常处理等。该书解释并比较了sql server 2000和sql server 2005在数据库开发相关问题上的解决方案,深入讨论了sql server 2005中新增的t-...

    个人整理的比较完整的T-SQL总结

    9. 函数:T-SQL提供了一系列内置函数,如数学函数、字符串函数、日期/时间函数等,以及用户自定义函数(UDF)来执行特定计算。 10. 事务管理:T-SQL支持事务,确保数据一致性。BEGIN TRANSACTION、COMMIT ...

Global site tag (gtag.js) - Google Analytics