仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1474|回复: 7
打印 上一主题 下一主题

[学习教程] MSSQL教程之求日期所属星座的 T-SQL UDF (用户自定...

[复制链接]
小妖女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:38:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。函数
usenorthwind
go
CREATEFUNCTIONGetStar(@datetime)
RETURNSvarchar(100)
AS
BEGIN
--仅一句SQL弄定
RETURN
(
--declare@datetime
--set@=getdate()
selectmax(star)
from
(
--星座,该星座入手下手日期所属月,该星座入手下手日期所属日
select魔羯座asstar,1as[month],1as[day]
unionallselect水瓶座,1,20
unionallselect双鱼座,2,19
unionallselect牧羊座,3,21
unionallselect金牛座,4,20
unionallselect双子座,5,21
unionallselect巨蟹座,6,22
unionallselect狮子座,7,23
unionallselect童贞座,8,23
unionallselect天秤座,9,23
unionallselect天蝎座,10,24
unionallselect弓手座,11,22
unionallselect魔羯座,12,22
)stars
wheredateadd(day,[day]-1,dateadd(month,[month]-1,dateadd(year,datediff(year,0,@),0)))
=
(
selectmax(dateadd(day,[day]-1,dateadd(month,[month]-1,dateadd(year,datediff(year,0,@),0))))
from
(
select魔羯座asstar,1as[month],1as[day]
unionallselect水瓶座,1,20
unionallselect双鱼座,2,19
unionallselect牧羊座,3,21
unionallselect金牛座,4,20
unionallselect双子座,5,21
unionallselect巨蟹座,6,22
unionallselect狮子座,7,23
unionallselect童贞座,8,23
unionallselect天秤座,9,23
unionallselect天蝎座,10,24
unionallselect弓手座,11,22
unionallselect魔羯座,12,22
)stars
where@>=dateadd(day,[day]-1,dateadd(month,[month]-1,dateadd(year,datediff(year,0,@),0)))
)
)
end

go
--测试
usenorthwind
selectdbo.getstar(birthdate),count(*)
fromemployees
groupbydbo.getstar(birthdate)

对于update操作,只需要把event中的旧行和新行值对调即可。
蒙在股里 该用户已被删除
沙发
发表于 2015-1-19 19:50:20 | 只看该作者
大家注意一点。如下面的例子:
透明 该用户已被删除
板凳
发表于 2015-1-28 10:11:16 | 只看该作者
总感觉自己还是不会SQL
地板
发表于 2015-2-5 20:32:16 | 只看该作者
这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。
飘灵儿 该用户已被删除
5#
发表于 2015-2-13 13:16:51 | 只看该作者
理解了存储结构,再阅读下性能优化的章节基本上会对sqlserver有个清晰地认识
因胸联盟 该用户已被删除
6#
发表于 2015-3-3 21:50:54 | 只看该作者
原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。
飘飘悠悠 该用户已被删除
7#
发表于 2015-3-18 22:26:04 | 只看该作者
having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。
愤怒的大鸟 该用户已被删除
8#
发表于 2015-3-26 19:48:54 | 只看该作者
having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-21 14:04

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表