zoukankan      html  css  js  c++  java
  • sql中的表值函数与标量值函数区别与用法

    通俗来讲:

    听名字就知道区别了 
    表值函数返回的是一张表结果,就和一个select查询语句一样,只不过里面带入了参数或者很复杂;
    标量值函数返回的只是一个值

    一 、表值函数又分为内联函数与多语句函数

    (1)内联函数就是没有函数主体表是单个 SELECT。

    下面是一个不带输入参数的表值函数

    create function tvpoints()
    returns table
    as 
    return
    (
    select * from tb_users
    );

    调用-这个结果返回的是一张表:

    select * from tvpoints()

    (2)下面是带参的内联表值函数

    对于多语句表值函数,在 BEGIN...END 语句块中定义的函数体包含一系列 Transact-SQL 语句,这些语句可生成行并将其插入将返回的表中。
    以下示例创建了一个表值函数.

    create function tvpoints()
    returns @points table (x float, y float)
    as begin
    insert @points values(1,2);
    insert @points values(3,4);
    return;
    end

    调用-查询到的是一张表

    select * from tvpoints()

    (3)标量函数(返回一个具体类型的值而不是一张表了)

    CREATE FUNCTION FUN_DataFormat (@strDate datetime)  
    RETURNS varchar(20)  AS  
    BEGIN 
        
        declare @date varchar(20)
          set @date = DATENAME(YY,@strDate)+''+Convert(VARCHAR,MONTH(@strDate))+''+Convert(VARCHAR,DAY(@strDate))+''
        return @date
    END

    可以通过select dbo.FUN_DataFormat(getdate())来使用。(用的时候一定要在函数前面添加一个dbo或者的话数据库语句报错的会提示不认识的)

  • 相关阅读:
    lianjie
    分享页(把末尾的JS函数换成这个)
    面试题:Java回形数组
    Keycloak暴力检测和OTP验证
    Mybatis 使用Spring boot AOP +自定义注解+PageHelper实现分页
    基于Keycloak权限管理服务的架构
    如何访问被Keycloak保护的后端API
    KeyCloak实战|Vue项目集成Keycloak
    LeetCode|788. Rotated Digits
    LeetCode|413. Arithmetic Slices
  • 原文地址:https://www.cnblogs.com/superfeeling/p/11723307.html
Copyright © 2011-2022 走看看