sql自定义函数及C#中调用
1、在C#中调用sql自定义函数
1.1 标量值函数
sql语句调用 select dbo.GetClassIDWithName(1)
string strSql = string.Format("select dbo.GetClassIDWithName('{0}')",dtTime);
DataTable dt = DB_Contrast.DB.OleDbHelper.GetDataTable(strSql);
1.2 表值函数
sql语句调用 select * from GetAnalysis('2015-1-15',1)
string strSql = string.Format("select * from dbo.GetAnalysis('{0}',{1}) where 部门='{2}' ",dtTime, classid,"开发");
DataSet ds = DB_Contrast.DB.OleDbHelper.GetDataSet(strSql);
2、表值函数,
内层select获取不重复的记录
外层按照部门进行分组
USE [BW_Contrast]
GO
/****** Object: UserDefinedFunction [dbo].[GetAnalysis] Script Date: 01/15/2015 13:09:17 ******/
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[GetAnalysis]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
DROP FUNCTION [dbo].[GetAnalysis]
GO /****** Object: UserDefinedFunction [dbo].[GetAnalysis] Script Date: 01/15/2015 13:09:17 ******/
SET ANSI_NULLS ON
GO SET QUOTED_IDENTIFIER ON
GO
/*
-----------------------------------------------------------------------------
《根据入井时间获取相应的班次ID》
-----------------------------------------------------------------------------
参数:
1、@classdate 班次日期 2、@classid 班次ID 返回值:table
-----------------------------------------------------------------------------
Written by
-----------------------------------------------------------------------------
*/ CREATE function [dbo].[GetAnalysis](@classdate datetime,@classid int)
returns table as
return (
--declare @classdate datetime,@classid int
--set @classid=2
--set @classdate='2015-1-14'
select
case when(grouping(a.部门)=1) then '合计' else a.部门 end as 部门
,(select top 1 ID from dbo.v_Dept where 部门名称=a.部门) as deptid
,Sum(case when dt_RealTime is not null and myclassid=@classid then 1 else 0 end ) as 派班人数
,Sum(case when dt_GetTime is not null and myclassid=@classid then 1 else 0 end ) as 领灯人数
,Sum(case when dtInWellTime is not null and myclassid=@classid then 1 else 0 end ) as 下井人数
,Sum(case when dt_OutWellTime is not null and myclassid=@classid then 1 else 0 end ) as 上井人数
,Sum(case when dt_ReturnTime is not null and myclassid=@classid then 1 else 0 end ) as 还灯人数
from
(
select
部门,deptid,myclassdate,myclassid,mypersonid
,min(dt_RealTime) as dt_RealTime
,min(dt_GetTime) as dt_GetTime
,min(dtInWellTime) as dtInWellTime
,min(dt_OutWellTime) as dt_OutWellTime
,min(dt_ReturnTime) as dt_ReturnTime
from v_ALL_NEW
where myclassdate=@classdate and myclassid=@classid
group by 部门,myclassdate,myclassid,mypersonid,deptid
)a
where myclassdate=@classdate and myclassid=@classid and 部门 is not null
group by 部门
with rollup
) GO
3、标量值函数
USE [BW_Contrast]
GO /****** Object: UserDefinedFunction [dbo].[GetClassIDWithName] Script Date: 01/15/2015 14:31:39 ******/
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[GetClassIDWithName]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
DROP FUNCTION [dbo].[GetClassIDWithName]
GO USE [BW_Contrast]
GO /****** Object: UserDefinedFunction [dbo].[GetClassIDWithName] Script Date: 01/15/2015 14:31:39 ******/
SET ANSI_NULLS ON
GO SET QUOTED_IDENTIFIER ON
GO /*
-----------------------------------------------------------------------------
《根据入井时间获取相应的班次ID》
-----------------------------------------------------------------------------
参数:
1.@InWellTime 入井时间 返回值:int型 班次ID
-----------------------------------------------------------------------------
Written by
-----------------------------------------------------------------------------
*/
create function [dbo].[GetClassIDWithName](@InWellTime varchar(50))
returns int as
begin
declare @returnValue int
set @returnValue=0
select @returnValue=classID from v_Class where 时间段名称 =@InWellTime
return @returnValue
end GO
sql自定义函数及C#中调用的更多相关文章
- SQL自定义函数split分隔字符串
SQL自定义函数split分隔字符串 一.F_Split:分割字符串拆分为数据表 Create FUNCTION [dbo].[F_Split] ( @SplitString nvarchar(max ...
- MS SQL自定义函数IsPositiveInteger MS SQL自定义函数IsNumeric 水晶报表使用IEnumerable<T>数据源
MS SQL自定义函数IsPositiveInteger 判断字符串是否为正整数,0开始的的数字不算. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON ...
- Spark SQL 自定义函数类型
Spark SQL 自定义函数类型 一.spark读取数据 二.自定义函数结构 三.附上长长的各种pom 一.spark读取数据 前段时间一直在研究GeoMesa下的Spark JTS,Spark J ...
- PL/SQL自定义函数
从SQL表达式中调用函数的限制 为了从SQL表达式中调用函数,一个用户定义函数必须: 是存储函数 只接受IN函数 只接收有受的SQL数据类型,而不接受PL/SQL数据类型 返回数据类型为有效的SQL数 ...
- sql 自定义函数--固定格式字符转时间类型
遇到一个德国的客户,他们的时间格式是JJJJ-TT-DD HH:MM:SS,程序按照这个格式将时间插入数据库,但是在sql自带的转换函数convert.cast过程中报错,网上搜了下都说用conver ...
- sqlserver自定义函数的创建与调用
sqlserver中有系统提供的函数,像avg.sum.getdate()等,用户还可以自定义函数. 用户自定义的函数包括:标量函数和表值函数,其中标量函数和系统函数的用法一样,表值函数根据主体的定义 ...
- c++纯虚函数在父类中调用的规避
构造和析构函数不允许调用纯虚函数,可以先调用虚函数,里面再调用纯虚函数实现. class Base{public: virtual void foo()=0; Base() { call_ ...
- SQL自定义函数
1,自定义函数--返回单一值 CREATE FUNCTION [dbo].[Round2] ( -- Add the parameters for the function here @p1 sql_ ...
- 在自定义的dwt文件中调用page_header.lbi和page_footer.lbi
昨天下午接到需求说要增加一个新的页面,作为优惠活动规则的介绍之用,之前对ecshop各种修改,但是这次自己做页面还是第一次,文件太多,函数也太多,一个一个的读过来时间很头疼的事情,于是就参照goods ...
随机推荐
- 【原创】SQL Server Job邮件详细配置
1 简介 SQL Server 代理具有发送电子邮件的功能.您可以配置 SQL Server 代理邮件,使其在出现下列情况时向预定义的操作员发送电子邮件: 警报触发时.可以配置警报,以针对所发生的特定 ...
- 在MSSQL中将数字转换成中文
具体代码如下: CREATE FUNCTION [dbo].[fn_NumberToChinese] (@number INT) ) AS BEGIN ); ); ); SET @res = ''; ...
- (1)C# 创建ef sqlserver
连接sql 如果报错不能连接的错误 把这三个IP地址的端口号设置上,并启用.第一个18.6是本机ip,之后就可以测试了 最后重启服务器
- python 传不可变对象 or 可变对象
可更改(mutable)与不可更改(immutable)对象 在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象 ...
- 使用net包发送http请求
[java] view plain copy import java.io.BufferedReader; import java.io.InputStream; import java.io.Inp ...
- RS-232
RS-232 锁定 同义词 rs232一般指RS-232 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . 个人计算机上的通讯接口之一,由电子工业协会(Electronic Industr ...
- Javascript中的原型链、prototype、__proto__的关系
javascript 2016-10-06 1120 9 上图是本宝宝用Illustrator制作的可视化信息图,希望能帮你理清Javascript对象与__proto__.prototype和 ...
- 计算GPS两点间的距离[单位为:米]
/** * 计算GPS两点间的距离[单位为:米] * @param center GPS当前数据(LonLat对象表示,LonLat.lon表示经度,LonLat.lat表示纬度) ...
- (转)指针的引用(*&)与指针的指针(**)
本文转载而来,转载出处:http://www.cppblog.com/doing5552/archive/2010/09/28/127994.html 在下列函数声明中,为什么要同时使用*和& ...
- Hadoop 变更磁盘的方法总结
背景说明HDFS文件系统使用一段时间后,可能会出现磁盘空间不足或是磁盘损坏的现象,此时需要对DataNode节点的磁盘进行扩充或是更换,本文对操作流程做一个简单的总结 操作步骤 挂载硬盘 添加硬盘的操 ...