SQL自定义函数的应用

原创 2004年03月25日 17:21:00

/**************************************************************************
函数名:GetClassName(@ClassID,@ClassType)
参数:@ClassID 类别的ID号,@ClassType,类别的种类 0:语言1:总分类,2:大类别,3:子类别 ,4:国家5:省份6:市县
返回:@ClassName类别的名称 nvarchar(100)
POWER BY ADPOST
create time : 2004年3月24日 14:16:16
*************************************************************************/
CREATE FUNCTION GetClassName(@ClassID as int, @ClassType as int)
RETURNS nvarchar(100) as
begin
 declare @ClassName as nvarchar(100)
 set @ClassName = ''
 if(@ClassType = 0)
 begin
  SELECT @ClassName = LngName FROM LXBIZ_Language WHERE (LngTypeID = @ClassID)
 end
 if(@ClassType = 1)
 begin
  SELECT @ClassName = CategoryName FROM LXBIZ_Category WHERE (CategoryID = @ClassID)
 end
 if(@ClassType = 2)
 begin
  SELECT @ClassName = ClassName FROM LXBIZ_BigClass WHERE (ClassID = @ClassID)
 end
 if(@ClassType = 3)
 begin
  SELECT @ClassName = SubClassName FROM LXBIZ_SubClass WHERE (SubClassID = @ClassID)
 end
 if(@ClassType = 4)
 begin
  SELECT @ClassName = CountryName FROM LXBIZ_Country WHERE (CountryID = @ClassID)
 end
 if(@ClassType = 5)
 begin
  SELECT @ClassName = ProvinceName FROM LXBIZ_Province WHERE (ProvinceID = @ClassID)
 end
 if(@ClassType = 6)
 begin
  SELECT @ClassName = CityName FROM LXBIZ_City WHERE (CityID = @ClassID)
 end
 return @ClassName
end

SQL自定义函数在SQL查询中的应用:

我帖一个我自定义的SQL视图给大家看一下

SELECT dbo.LXBIZ_AccoutInfo.AccoutID, dbo.LXBIZ_AccoutInfo.AccoutName,
      dbo.LXBIZ_AccoutInfo.AccoutPassWord, dbo.LXBIZ_AccoutInfo.SafeQuestion,
      dbo.LXBIZ_AccoutInfo.SafeAnswer, dbo.LXBIZ_AccoutInfo.AccoutEmail,
      dbo.LXBIZ_AccoutInfo.AccoutFlag, dbo.LXBIZ_AccoutInfo.AccoutLevel,
      dbo.LXBIZ_AccoutInfo.AccountExpireTime, dbo.LXBIZ_AccoutInfo.AccountMoney,
      dbo.LXBIZ_AccoutInfo.LoginCount, dbo.LXBIZ_AccoutInfo.LastLoginIP,
      dbo.LXBIZ_AccoutInfo.LastLoginTime, dbo.LXBIZ_AccoutInfo.RegTime,
      dbo.LXBIZ_EnterpriseInfo.EnterpriseID, dbo.LXBIZ_EnterpriseInfo.CompanyFileUrl,
      dbo.LXBIZ_EnterpriseInfo.ClassID,
      dbo.GetClassName(dbo.LXBIZ_EnterpriseInfo.ClassID, 2) AS ClassName,
      dbo.LXBIZ_EnterpriseInfo.ModeTypeID, dbo.LXBIZ_EnterpriseInfo.SellKeyword,
      dbo.LXBIZ_EnterpriseInfo.BuyKeyWord, dbo.LXBIZ_EnterpriseInfo.CompanyName,
      dbo.LXBIZ_EnterpriseInfo.CountryID,
      dbo.GetClassName(dbo.LXBIZ_EnterpriseInfo.CountryID, 4) AS CountryName,
      dbo.LXBIZ_EnterpriseInfo.ProvinceID, dbo.LXBIZ_EnterpriseInfo.CityID,
      dbo.LXBIZ_EnterpriseInfo.CompanyAddress, dbo.LXBIZ_EnterpriseInfo.CompanyUrl,
      dbo.LXBIZ_EnterpriseInfo.ContactName, dbo.LXBIZ_EnterpriseInfo.JobTitle,
      dbo.LXBIZ_EnterpriseInfo.ContactSex, dbo.LXBIZ_EnterpriseInfo.ContactTel,
      dbo.LXBIZ_EnterpriseInfo.ContactFax, dbo.LXBIZ_EnterpriseInfo.ContactMobile,
      dbo.LXBIZ_EnterpriseInfo.PostCode, dbo.LXBIZ_EnterpriseInfo.BankName,
      dbo.LXBIZ_EnterpriseInfo.BankNumber, dbo.LXBIZ_EnterpriseInfo.Turnover,
      dbo.LXBIZ_EnterpriseInfo.EmployersNum, dbo.LXBIZ_EnterpriseInfo.CompnayLICD,
      dbo.LXBIZ_EnterpriseInfo.CompanyHits,
      dbo.GetClassName(dbo.LXBIZ_EnterpriseInfo.LngTypeID, 0) AS LngName, <这是取出语言类别的名称,调用以上定义的自定义函数>
      dbo.LXBIZ_EnterpriseInfo.IssueTime, dbo.LXBIZ_EnterpriseInfo.Corporate
FROM dbo.LXBIZ_EnterpriseInfo INNER JOIN
      dbo.LXBIZ_AccoutInfo ON
      dbo.LXBIZ_EnterpriseInfo.AccoutID = dbo.LXBIZ_AccoutInfo.AccoutID

SQL中的自定义函数总结

自定义函数:根据返回值的类型可以分为标量函数(返回单个值)和表值函数(返回一个表)  Page  174; SQL中的自定义函数总共有三种 (1)标量函数——标量值函数 语法结构: CREATE ...
  • adreammaker
  • adreammaker
  • 2017年03月29日 20:43
  • 779

SQL Server 自定义函数

标量值函数 如果RETUR NS 子句指定一种标量数据类型,则函数为标量值函数 如果RETURNS 子句指定 TABLE,则函数为表值函数 如果RETURNS 子句指定的TABLE 不附带列,则该函数...
  • QingHeShiJiYuan
  • QingHeShiJiYuan
  • 2016年01月06日 15:45
  • 2174

带有自定义函数的sql优化

author:skatetime:2009/05/14 一. 第一个sql  Buffer Gets    Executions  Gets per Exec  %Total Time (s)  Ti...
  • wyzxg
  • wyzxg
  • 2009年05月14日 15:09
  • 1959

SQL SERVER用户自定义函数的创建和使用

SQL SERVER的用户自定义函数可以在T-SQL中自由使用,就像其内建的系统函数一样,如字符串函数CHARINDEX(),数据类型转换函数CAST()和CONVERT()等。 用户自定义函数的创...
  • kindyb
  • kindyb
  • 2015年01月20日 17:05
  • 2362

Sql建立自定义函数(函数和调用实例)

------------------ 建立函数 create function dbo.Csj (@m_str varchar(80)) returns varchar(80) as begin ...
  • dxnn520
  • dxnn520
  • 2012年10月23日 21:22
  • 18488

自定义函数导致的sql性能问题

优化自定义函数
  • wanbin6470398
  • wanbin6470398
  • 2017年11月29日 10:00
  • 167

SQL自定义函数function

用户定义自定义函数像内置函数一样返回标量值,也可以将结果集用表格变量返回。 sql函数必须有返回值。标量函数:返回一个标量值。 表格值函数{内联表格值函数、多表格值函数}:返回行集(即返回多个值)...
  • qq_23833037
  • qq_23833037
  • 2016年11月15日 14:37
  • 7436

存储过程和自定义函数的优缺点

存储过程和用户定义函数都是“SQL语句组成的子程序,用以封装代码以便重复使用”。但区别也是显而易见的。简单说,存储过程功能强大,但调用不便,用户函数正相反。 用户定义函数的优点: 可以在SQL语句...
  • lanchengxiaoxiao
  • lanchengxiaoxiao
  • 2012年05月04日 18:01
  • 1218

Spark SQL 用户自定义函数UDF、用户自定义聚合函数UDAF 教程(Java踩坑教学版)

http://www.cnblogs.com/xing901022/p/6436161.html 在Spark中,也支持Hive中的自定义函数。自定义函数大致可以分为三种...
  • zdy0_2004
  • zdy0_2004
  • 2017年02月24日 00:00
  • 586

SQL 中自定义的函数怎样调用?

 合并列值原著:邹建改编:爱新觉罗.毓华  2007-12-16  广东深圳表结构,数据如下:id    value----- ------1     aa1     bb2     aaa2    ...
  • luofeng2006
  • luofeng2006
  • 2008年03月21日 10:28
  • 4924
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQL自定义函数的应用
举报原因:
原因补充:

(最多只允许输入30个字)