• SQL SERVER 标量函数


    标量函数的定义

    SQL Server标量函数接受一个或多个参数并返回单个值。

    标量函数可帮助简化代码。 例如,可能有许多查询中出现的复杂计算。可以创建一个标量函数来封装公式并在查询中使用它,而不是在每个查询中包含公式。

    平时使用的场景

    在一个功能中,根据业务去写存储过程中的算法。存储过程的调用时会出现,返回值不明确的情况。

    为避免此情况,可使用统一的标量函数值,将返回值进行编程规范

    如:抽奖活动,返回值为-1为已抽奖,或者返回值为-1为不满足条件

    标量函数的使用

    创建

    USE [XXXDB]
    GO
    /****** Object:  UserDefinedFunction [dbo].[ReturnState_OtherStatus]    Script Date: 2021/1/19 9:41:24 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:		<lwz>
    -- Create date: <Create Date, ,>
    -- Description:	<返回结果的其他状态,超过次数等>
    -- =============================================
    CREATE FUNCTION [dbo].[ReturnState_OtherStatus]
    (
    
    )
    RETURNS SMALLINT
    AS
    BEGIN
    	
    	RETURN -1;
    
    END
    

    存储过程调用

    USE [OldSoldierComeBackDB]
    GO
    /****** Object:  StoredProcedure [dbo].[IsReceiveComeBackPacket]    Script Date: 2021/1/19 9:45:55 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:		zhuchunfeng
    -- Create date: 2016-06-21
    -- Description: 是老玩家 检查有没有领取过老玩家礼包    
    -- =============================================
    ALTER PROCEDURE [dbo].[IsReceiveComeBackPacket]
        @AvatarID BIGINT ,
        @GameArea INT
    AS
        BEGIN
            SET NOCOUNT ON;
            -- Type 1 2 3 
            -- 有没有领取过
            IF EXISTS ( SELECT  1
                        FROM    dbo.XXXDB
                        WHERE   AvatarID = @AvatarID
                                AND GameArea = @GameArea 
                                AND Type=0 )
                RETURN dbo.ReturnState_OtherStatus();
    
            RETURN dbo.ReturnState_Succeed();
            SET NOCOUNT OFF;
        END
    
    

    参考链接

    SQL Server标量函数

    SQLServer之创建标量函数

  • 相关阅读:
    Eclipse安装反编译插件
    关于eclipse发送到桌面快捷方式后打不开
    字符串 242.有效的字符异位词
    栈 503.下一个更大的元素
    eclipse导入jar包
    Java获取当前的时间
    链表 24.两两交换链表中的节点
    链表 19.删除链表倒数第N个节点
    共享空间的栈
    栈的顺序存储结构
  • 原文地址:https://www.cnblogs.com/WenzhengLi/p/14296423.html
Copyright © 2020-2023  润新知