1. 程式人生 > >MYSQL 自定義函式(if else)

MYSQL 自定義函式(if else)

IF OBJECT_ID('dbo.GetDateDiff', 'FN') IS NOT NULL OR OBJECT_ID('dbo.GetDateDiff', 'TF') IS NOT NULL OR OBJECT_ID('dbo.GetDateDiff', 'IF') IS NOT NULL DROP FUNCTION dbo.GetDateDiff     //判斷此函式是否存在,若存在,刪除,不存在,重建
GO

create function GetDateDiff(@start varchar(200),@end varchar(200),@t_start varchar(200),@t_end varchar(200))
returns @d table(time varchar(20))                                           //建立臨時表,returns確定返回值型別
as                                                                                                 //函式寫在begin,end 中
begin                                                                                          

declare @result int,@Max varchar(200),@Min varchar(200)               //定義變數
if(DATEDIFF(day,@start,@t_start)>0)                                                 //判斷兩個時間的大小
      set  @
[email protected]
_start
      else
       set  @[email protected]
       
       if(DATEDIFF(day,@end,@t_end)>0)
      set  @[email protected]
      else
       set  @[email protected]_end


 if(DATEDIFF(day,@t_start,@end) <0)
  set  @result=0
 else if(@end is not null)
      set  @result=DATEDIFF(day,@Max,@Min)                                    //返回兩個時間的差值
 else
      set  @result=DATEDIFF(day,@Max,@t_end)

insert into @d(time) values (@result)                                                    //結果插入表中
return
end
GO

COMMIT

GO

select * from gEtdatediff('2015-02-12',null,'2013-03-24','2015-05-24')          //呼叫此函式

相關推薦

MYSQL 定義函式if else

IF OBJECT_ID('dbo.GetDateDiff', 'FN') IS NOT NULL OR OBJECT_ID('dbo.GetDateDiff', 'TF') IS NOT NULL OR OBJECT_ID('dbo.GetDateDiff', 'IF')

MYSQL定義函式

建立自定義函式 CREATE FUNCTION function_name(param1, param2) RETURNS 返回值型別{STRING|INTEGER|REAL|DECIMAL} routine_body - 函式體 CREATE FUN

mysql 定義函式1建立一個簡單函式

1、先建立一個無參的自定義函式: -- 如果有這個函式,就刪除 drop function if exists hello; -- 建立一個無參的函式 create function hello (

DB2定義函式C語言

1      總體介紹 基於DB2 V9.5 1.1    使用者自定義函式(UDF) DB2 內部提供了大量的函式,但仍然不足以滿足業務千奇百怪的需要。不過DB2提供了使用者自定義函式(User Defined Function,簡稱 UDF)功能。DB29.5版本的自定

儲存過程與使用者定義函式SQL SERVER

聯絡 二者本質上沒有什麼區別。當儲存過程和函式被執行的時候,SQL Manager會到procedure cache中去取相應的查詢語句,如果在procedure cache裡沒有相應的查詢語句,SQL Manager就會對儲存過程和函式進行編譯。Pr

MySql建立定義函式Function

1.建立自定義函式 DELIMITER $$ DROP FUNCTION IF EXISTS genPerson$$ CREATE FUNCTION genPerson(name varchar(20)) RETURNS varchar(50) BEGIN DECLAR

LeetCode上關於求第N高的薪水的使用MySQL定義函式

第N高的薪水: 編寫一段SQL語句,從Employee表查詢獲得第 n 高的薪水。 +—-+——–+ | Id | Salary | +—-+——–+ | 1 | 100 | | 2

除錯經驗——如何檢視Oracle定義函式 How to view definition of user defined functions in Oracle

問題描述: 現有的Query中似乎使用了一個自定義函式String_to_list,為了排查問題,需要檢視這個函式的定義。 方法:   --新建的function,並未儲存在All_ojbects表中,而是儲存在user_objects表中 SELECT * FRO

SparkSQL 使用者定義函式UDF、UDAF、開窗

UDF: 操作單個數據行,產生單個數據行; UDAF: 操作多個數據行,產生一個數據行。 UDTF: 操作一個數據行,產生多個數據行一個表作為輸出。 UDF函式 通過spark.udf.register(“funcName”, func) 來進行註冊 使用:se

xlwings:使用者定義函式UDF,VBA函式,Python函式

VBA定義函式計算 x + y如果用巨集,要把(把返回值寫到哪個單元格里的)程式碼寫到巨集裡面。VBA函式就不用Function MyAddTwoNumber(x As Double, y As Double) Dim z z = x + y

SparkSQL建立RDD:UDFUserDataFrame使用者建立定義函式包含動態建立schema,使用者定義函式,查詢字元的個數【Java版純程式碼】

Java版程式碼:  package com.bjsxt; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.apache.spark.Spark

Hive定義函式UDF的編寫及使用

前提條件: 1. 安裝好hadoop2.7.3(LInux環境下) 2. 安裝好Hive2.3.3,參考:Hive的安裝配置 3. 安裝好Maven(Windows環境下)參考:Maven安裝 4. 安裝好eclipse(Windows環境下)   Hive自定義函

SparkSQL定義函式實現幾何平均數

SparkSQL-自定義聚合函式 (實現幾何平均數) ->建立SparkSessionparkSession ->建立自定義函式     -1、繼承UserDefinedAggregateFunction     

Python列表操作定義函式

<span style="font-size:14px;"># -*- coding: cp936 -*- #list函式形參傳遞 s = "www.baidu.com" print s li1 = list(s) print 'li1',li1 #定義一個函

Pig使用者定義函式UDF

我們以氣溫統計和詞頻統計為例,講解以下三種使用者自定義函式。 使用者自定義函式 什麼時候需要使用者自定義函式呢?和其它語言一樣,當你希望簡化程式結構或者需要重用程式程式碼時,函式就是你不二選擇。 Pig的使用者自定義函式可以用Java編寫,但是也可以用Python或Java

sqlserver定義函式標量值函式,表值函式

在sqlserver中,根據函式返回值形式的不同將使用者自定義的函式分為”標量值函式“和”表值函式“兩種型別。如下圖所示,可以在資料庫中的可程式設計->函式中進行檢視。 標量函式,返回單個值,表值函式返回表資料 1.標量值函式 標量值函式返回一個確定型別的標量值,其

sqlserver,一個定義函式提取字串中的數值,包含0-9和‘.’

GO ALTER FUNCTION [dbo].[clear_num](@s VARCHAR(100)) RETURNs VARCHAR(100) as BEGIN WHILE PATINDEX('%[^0-9.]%', @s)>=1 BEGIN set @s=

Impala使用者定義函式UDF

因業務需要用到MD5,但Impala沒有該函式,隨藉助UDF實現。以下是實現過程。UDF實現要點:根據叢集中Hive的版本匯入對應版本的hive-exec.jar自定義UDF類要繼承介面UDF實現eva

使用VBA在EXCEL中插入圖片定義函式網路URL/本地URL

Sub InsertPic(ByVal 圖片連結 As String, ByVal 插入圖片表名 As String, ByVal 插入圖片單元格地址 As String) On Error Resume Next Dim rng As Range

SQL Server 定義函式Function

sql server 自定義函式分為三種類型:標量函式(Scalar Function)、內嵌表值函式(Inline Function)、多宣告表值函式(Multi-Statement Function) 標量函式:標量函式是對單一值操作,返回單一值。 內嵌表值函式: