会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
新窝
大学同学都叫我刚刚,刚是刚刚的刚,刚是刚刚的刚……
博客园
首页
新随笔
联系
订阅
管理
sql server 位移函数
Code
1
CREATE
FUNCTION
[
dbo
]
.
[
BitMove
]
(
@long
bigint
,
@operator
varchar
(
3
),
@len
int
)
2
RETURNS
bigint
AS
3
BEGIN
4
if
@len
=
0
5
return
@long
6
declare
@i
bigint
7
declare
@j
bigint
8
set
@i
=
cast
(
0x8000000000000000
as
bigint
)
9
set
@j
=
cast
(
0x4000000000000000
as
bigint
)
10
if
@operator
=
'
<<
'
11
begin
12
while
@len
>
0
13
begin
14
set
@len
=
@len
-
1
15
if
(
@i
&
@long
)
=
@i
16
set
@long
=
@long
^
@i
17
if
(
@j
&
@long
)
=
@j
18
begin
19
set
@long
=
@long
^
@j
20
set
@long
=
@long
*
2
21
if
@len
=
0
22
set
@long
=
@long
|
@i
23
end
24
else
25
set
@long
=
@long
*
2
26
end
27
end
28
else
29
begin
30
set
@len
=
@len
-
1
31
set
@long
=
@long
/
2
32
if
@operator
=
'
>>>
'
and
(
@i
&
@long
)
=
@i
33
set
@long
=
@long
^
@i
34
set
@long
=
@long
/
power
(
2
,
@len
)
35
end
36
return
@long
37
END
posted @
2008-11-21 10:29
wpg
阅读(
862
) 评论(
0
)
收藏
举报
刷新页面
返回顶部
公告