有一张表:TableA
Name number
小明 16
小孙 17
小陈 10
小王 11
小刘 12
小吴 64
小张 129
number是int类型,我要取出化成二进制后低第二位为1的数据,如
小明的number是16,二进制是10000,不符合要求
小陈的number是10,二进制是1010,右边第二位是1,符合要求
Name number
小明 16
小孙 17
小陈 10
小王 11
小刘 12
小吴 64
小张 129
number是int类型,我要取出化成二进制后低第二位为1的数据,如
小明的number是16,二进制是10000,不符合要求
小陈的number是10,二进制是1010,右边第二位是1,符合要求
create function prc_numTo2
(@num bigint)
returns varchar(200)
as
begin
declare @numstr varchar(50)
set @numstr=''
while (@num<>0)
begin
set @numstr=@numstr+convert(char(1),@num%2)
set @num=@num/2
end
return reverse(@numstr)
endgo
declare @Table table (Name varchar(4),number int)
insert into @Table
select '小明',16 union all
select '小孙',17 union all
select '小陈',10 union all
select '小王',11 union all
select '小刘',12 union all
select '小吴',64 union all
select '小张',129select * from @Table
where left(right(dbo.prc_numTo2(number),2),1)=1
/*
Name number
---- -----------
小陈 10
小王 11
*/
INT型转二进制字符串
select name,number from TableA where left(right('二进制字符串',2),1) = '1'