zoukankan      html  css  js  c++  java
  • TSQL(二) 自定义函数和控制流语句

    自定义函数

        内联表值函数:返回值为可更新表。函数内包含单个select语句且该语句可更新,则返回的表也可以更新。

        多语句表值函数:返回值为不可更新表。函数内包含多个select语句且该语句可更新,则返回的表不可更新。

        标量函数:返回值为标量值。

        自定义函数由一个或者多个T-SQL语句构成的子程序,用于封装用户代码

        定义格式:

        CREATE FUNCTION 函数名(参数列表)

        RETURNS数据类型---定义返回值类型

        AS

        BEGIN

     

        变量函数

        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

     

        内联表值函数

        create function showPerson( @par int )

        returns table

        as

        return

           select * from Person where Pno = @par

        select * from dbo.showPerson(2);

     

        多语句表值函数

        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

        IFELSE语句是条件判断语句,其中,ELSE子句是可选的,最简单的IF语句没有ELSE子句部分。

        IFELSE语句用来判断当某一条件成立时执行某段程序,条件不成立时执行另一段程序。

       2BEGIN --- END

        BEGINEND语句能够将多个Transact-SQL语句组合成一个语句块,并将它们视为一个单元处理。

        在条件语句和循环等控制流程语句中,当符合特定条件便要执行两个或者多个语句时,就需要使用BEGINEND语句。

        其语法形式为:

        BEGIN

          { sql_statement | statement_block }

        END

        3CASE函数

        CASE函数可以计算多个条件式,并将其中一个符合条件的结果表达式返回。

        CASE函数按照使用形式的不同,可以分为简单CASE函数和搜索CASE函数。

        例:

        Select Pname,age,

        case prof

           When '总经理' then '高层干部'

           When '部门经理' then '高层干部'

           When '主任' then '中层干部'

           When '组长' then '基层干部'

        End

        From person

        4WHILECONTINUEBREAK语句

        CONTINUE语句可以使程序跳过CONTINUE语句后面的语句,回到WHILE循环的第一行命令。

        BREAK语句则使程序完全跳出循环,结束WHILE语句的执行。

        5GOTO语句

        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<=5

           goto  label_1

        select  @count  ,  @sum

       6WAITFOR语句

        WAITFOR语句用于暂时停止执行SQL语句、语句块或者存储过程等,直到所设定的时间已过或者所设定的时间已到才继续执行。

        WAITFOR语句的语法形式为:WAITFOR { DELAY 'time' | TIME 'time' }

        其中,DELAY用于指定时间间隔,TIME用于指定某一时刻,其数据类型为datetime,格式为hh:mm:ss’

        waitfor time  '12:52'

        select * from person

        7RETURN语句

        RETURN语句用于无条件地终止一个查询、存储过程或者批处理,此时位于RETURN语句之后的程序将不会被执行。

        RETURN语句的语法形式为:RETURN [ integer_expression ]

        其中,参数integer_expression为返回的整型值。存储过程可以给调用过程或应用程序返回整型值。

     

     

     

     

     

     

     

     

  • 相关阅读:
    内网渗透笔记
    shift粘滞键后门创建/复原批处理
    通过Wireshark抓包进行Cookie劫持
    最全前端资源汇集 (持续整理中)
    HTML5教程之html 5 本地数据库(Web Sql Database)
    myslq 基本命令
    Node.js面试题:侧重后端应用与对Node核心的理解
    44个 Javascript 变态题解析 (上下)
    BAT及各大互联网公司前端笔试面试题--Html,Css篇
    Web前端面试题集锦
  • 原文地址:https://www.cnblogs.com/rainman/p/1443833.html
Copyright © 2011-2022 走看看