自定义函数实现位操作
来源:互联网 发布:先锋软件 编辑:程序博客网 时间:2024/05/26 17:47
问题1:两个01组成的字符串,需要实现与运算。比如两个字符串分别是000111011001和010011010011,需要求他们的与,结果是000011010001
/************************************************/
/* 字符串与操作 */
/* 版本: 1.0 */
/* 作者: Haiwer */
/* 版权所有 */
/* 调用事例:select dbo.fn_and('000111011001','010011010011') */
/* 2007.07.21整理 */
/************************************************/
CREATE function [dbo].[fn_And](
@A1 varchar(300),
@A2 varchar(300)
)
returns varchar(300)
as
begin
declare @r varchar(300)
set @r=''
while len(@A1) >0
begin
set @r=@r+cast(cast(left(@A1,1) as tinyint) & cast(left(@A2,1) as tinyint) as varchar)
set @A1=stuff(@A1,1,1,'')
set @A2=stuff(@A2,1,1,'')
end
return @r
end
问题2:有表tab数据如下
ID Val
A 3
A 2
A 1
B 4
B 2
C 1
C 2
C 8
C 16
B 32
求每个id的聚合或,要求的结果如下
ID Val
A 3 --3 or 2 or 1 =3
B 38 --4 or 2 or 32=38
C 27 -- 1 or 2 or 8 or 16=27
用函数实现
/************************************************/
/* 聚合或操作函数 */
/* 版本: 1.0 */
/* 作者: Haiwer */
/* 版权所有 */
/* 调用事例: */
/* select id,[dbo].[fn_聚合或](id) as 聚合或 from tab group by id */
/* 2007.07.21整理 */
/************************************************/
create function [dbo].[fn_聚合或](
@id varchar(10)
)
returns int
as
begin
declare @r int
set @r=0
select @r=@r | val from tab where id=@id
return @r
end
- 自定义函数实现位操作
- [MSSQL]自定义函数实现位操作
- 【叶子函数分享三十一】自定义函数实现位操作
- 一些位操作函数
- 位操作函数
- 一个位操作函数
- 编程实现位操作
- 位操作实现加减乘除
- 位操作实现加法
- 位操作,实现加减乘除
- 位操作实现四则运算
- 位操作实现加法
- 位操作实现技巧
- 实现位操作
- 位操作实现加减乘除
- 用位操作实现+
- 位操作实现加减乘除
- Excel操作自定义函数
- 踩踩踩
- 搬家到csdn
- java虚拟机jvm关于内存的设置与调优
- 通过一个程序,详细了解了Object类,Integer类,System类,Runtime类
- 开始关注王朔
- 自定义函数实现位操作
- 导入/导出Excel
- 类的拷贝构造函数的参数
- 关于配置文件的访问次序
- 偶数分解成两个素数之和
- 深入分析ADO.NET中的DataSet对象
- 十道连锁问题的求解
- [英文]投稿、审稿以及修改稿件时的常用句型
- 王朔简介