当前位置:  数据库>sqlserver

T-SQL学习之二 自定义函数和控制流语句

    来源: 互联网  发布时间:2014-08-29

    本文导语:  一、自定义函数     内联表值函数:返回值为可更新表。函数内包含单个select语句且该语句可更新,则返回的表也可以更新。     多语句表值函数:返回值为不可更新表。函数内包含多个select语句且该语句可更新,则返回的...

一、自定义函数
    内联表值函数:返回值为可更新表。函数内包含单个select语句且该语句可更新,则返回的表也可以更新。
    多语句表值函数:返回值为不可更新表。函数内包含多个select语句且该语句可更新,则返回的表不可更新。
    标量函数:返回值为标量值。
    自定义函数由一个或者多个T-SQL语句构成的子程序,用于封装用户代码

    定义格式:
  

代码如下:
  CREATE FUNCTION 函数名( 参数列表)
    RETURNS 数据类型---定义返回值类型
    AS
    BEGIN

    1、变量函数
   

代码如下:
create function max2( @par1 real , @par2 real)
    returns real
    as
    begin
       declare @par real
       if @par1 > @par2
           set @par = @par1
       else
           set @par = @par2;
       return @par
    end

    2、内联表值函数
   

代码如下:
create function showPerson( @par int )
    returns table
    as
    return
       select * from Person where Pno = @par
    select * from dbo.showPerson(2);

    3、多语句表值函数
   

代码如下:
create function showStudent ( @xuehao varchar(12) )
    returns @chengji table( xuehao nchar(12) , xingming nchar(20) )
    as
    begin
       insert @chengji
       select xuehao , xingming from student where xuehao = @xuehao
       return
    end

 二、控制流语句

    1、IF --- ELSE
    IF…ELSE语句是条件判断语句,其中,ELSE子句是可选的,最简单的IF语句没有ELSE子句部分。
    IF…ELSE语句用来判断当某一条件成立时执行某段程序,条件不成立时执行另一段程序。

   2、BEGIN --- END
    BEGIN…END语句能够将多个Transact-SQL语句组合成一个语句块,并将它们视为一个单元处理。
    在条件语句和循环等控制流程语句中,当符合特定条件便要执行两个或者多个语句时,就需要使用BEGIN…END语句。
    其语法形式为:
    BEGIN
      { sql_statement | statement_block }
    END

    3、CASE函数
    CASE函数可以计算多个条件式,并将其中一个符合条件的结果表达式返回。
    CASE函数按照使用形式的不同,可以分为简单CASE函数和搜索CASE函数。

    例:
   

代码如下:
Select Pname,age,
    case prof
       When '总经理' then '高层干部'
       When '部门经理' then '高层干部'
       When '主任' then '中层干部'
       When '组长' then '基层干部'
    End
    From person

    4、WHILE…CONTINUE…BREAK语句
    CONTINUE语句可以使程序跳过CONTINUE语句后面的语句,回到WHILE循环的第一行命令。
    BREAK语句则使程序完全跳出循环,结束WHILE语句的执行。

    5、GOTO语句
    GOTO语句可以使程序直接跳到指定的标有标识符的位置处继续执行,而位于GOTO语句和标识符之间的程序将不会被执行。
    GOTO语句和标识符可以用在语句块、批处理和存储过程中,标识符可以为数字与字符的组合,但必须以“:”结尾。
    例:利用GOTO语句求出从加到的总和。
   

代码如下:
declare  @sum int, @count int
    select   @sum=0, @count=1
    label_1:
    select  @sum=@sum+@count
    select  @count=@count+1
    if   @count

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • T-SQL常用的聚合函数
  • T-SQL实例 函数结果设置为列别名
  • T-SQL常用的数学函数
  • T-SQL 实现一个简单的 Split 函数
  • T-SQL常用的元数据函数
  • T-SQL判断一个日期是否为今天的函数
  • T-SQL常用的时间和日期函数
  • T-SQL实现的一个Split函数
  • T-SQL常用游标函数实例学习
  • T-SQL常用的系统函数
  • T-SQL自定义函数返回前一天或后一天日期的例子
  • T-SQL常用的字符串函数
  • T-SQL中使用正则表达式函数
  • t-sql清空表数据的两种方式示例(truncate and delete)
  • 学习T-SQL中default值的使用
  • T-SQL学习之一 T-SQL基础
  • 使用T-SQL的Split拆分字符串的方法
  • SQLServer用t-sql命令批量删除数据库中指定表(游标循环删除)
  • SQL Server中的T-SQL的基本对象
  • T-SQL 实现 Split 的方法
  • T-SQL常用游标函数实例学习 iis7站长之家
  • T-SQL数据库约束学习笔记
  • T-SQL排序-重复数据的剔除保留及分页存储过程
  • T-SQL入门教程之创建与查看数据
  • T-SQL排序、重复数据的剔除保留及分页存储过程的例子
  • T-SQL实例 子查询结果中使用比较操作符
  • T-SQL实例 列别名的用法举例
  • T-SQL实例 使用As添加列别名
  • T-SQL实例 在where子句中使用and操作符
  • T-SQL入门教程之查看数据库对象
  • T-SQL编程学习笔记




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3