SQL一些小小小问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL一些小小小问题相关的知识,希望对你有一定的参考价值。
1.用case函数,求当前日期是否是闰年。
2。用T-SQL流程控制语句编写程序,求斐波那契数列中小于100的所有数(斐波那契数列1,2,3,5,8,13.....)
12。定义一个用户标量函数,用以实现判断并返回三个数中的最大数?
--用T-SQL流程控制语句编写程序,求斐波那契数列中小于100的所有数(斐波那契数列1,2,3,5,8,13.....)
declare @i int
declare @j int
declare @t int
declare @s varchar(2000)
set @i=1
set @j=2
set @s=''
set @s=cast(@i as varchar(10))+','+cast(@j as varchar(10))
while (@j<100)
begin
set @t=@j
set @j=@j+@i
set @i=@t
if(@j<100)
set @s=@s+','+cast(@j as varchar(10))
end
print @s
---结果 1,2,3,5,8,13,21,34,55,89
问题3
create function [dbo].[getmax](@a int,@b int, @c int)
returns int
as
begin
declare @max int
if @a>@b
begin
if @a>@c
set @max=@a
else
begin
if @b>@c
set @max=@b
else
set @max=@c
end
end
else
begin
if @b<@c
set @max=@c
else
set @max=@b
end
return @max
end
--------------或者*-----------------
create function [dbo].[getmax1](@a int,@b int, @c int)
returns int
as
begin
declare @max int
select @max=max(f1)from (select @a as f1 union all select @b as f1 union all select @c as f1 ) as a
return @max
end 参考技术A 今年是闰年?
declare @a decimal
set @a = datename(yy,getdate())
select case
when ((@a/4)-floor(@a/4)=0
and (@a/100)-floor(@a/100)>0)
or ((@a/100)-floor(@a/100)=0
and (@a/400)-floor(@a/400)=0)
then '闰年'
ELSE '不是闰年'
END AS '今年'
----
第2个.同项公式貌似无理式..貌似SQL中没有无理式函数.俺数学不大好 如果你知道根号5换成正余玄函数是多少的话.补充一下.
..最后一个就是小儿科了.
Promise回调地狱学习小小小小小笔记
Promise属于ES6新加入的语法
目前在浏览器中输入Promise就可以看到有这个对象了
用法是创建一个新的函数来包括原来的函数体并且在原来的函数体中再包一个可以返回一个新的实例化Promise对象而这个promise自带resolve用于回调
like this:
function promiseAnimate(ball,dis){ return new Promise(function(resolve,reject){ function _animation() { setTimeout(function () { var marginLeft = parseInt(ball.style.marginLeft); if (marginLeft == dis) { resolve() } else { if (marginLeft < dis) { marginLeft++ } else { marginLeft-- } ball.style.marginLeft = marginLeft + ‘px‘ _animation(); } }, 13) } _animation();//由于被包裹进去之后无法进行加载那个方法所以要在函数的Promise内部执行这个函数 }) }
原函数体:
function _animate(){ setTimeout(function () { var marginLeft = parseInt(ball.style.marginLeft) if(marginLeft==dis){ resolve() }else{ if(marginLeft<dis){ //dosomething.... } } },13) }
而调用部分
promiseAnimate(ball1,100) .then(function(){ return promiseAnimate(ball2,200) }) .then(function(){ return promiseAnimate(ball3,300) }) .then(function(){ return promiseAnimate(ball3,100) }) .then(function(){ return promiseAnimate(ball2,100) }) .then(function(){ return promiseAnimate(ball1,100) })
首先是第一次开始调用这个函数,由于有resolve(详细的原理还不清楚)在执行完以上的就会符合条件进行resolve(),由于之前在最外层的函数(promiseAnimate)内返回了一个实例化了的promise对象所以这个对象就有了then的方法(具体内部发生了目前还不了解)
使用环境设想:平常会用到比较多的回调函数 这个如何让自己使用回调的更方便
resolve()不传入参数是访问不到其他东西的
.then 之后的return PromiseAnimate()应该是为了下次的回调所以要return
留下的问题:这个如何让自己使用回调的更方便?
--------------------
待更新...
以上是关于SQL一些小小小问题的主要内容,如果未能解决你的问题,请参考以下文章