Sql server T-SQL中的整型二进制字符串
我将7位二进制数据作为Sql server T-SQL中的整型二进制字符串,sql-server,tsql,Sql Server,Tsql,我将7位二进制数据作为varchar存储在SQL Server数据库中。这个7位二进制数据最终需要转换成整数。我试图获取这个二进制字符串,然后转换成varbinary,然后转换成整数。对varbinary的转换可以接受十六进制字符串,但是我找不到一种方法让这个转换接受二进制字符串 示例字符串: 0000010 0000100 0001001 这些应转换为: 2 4 9 我可以创建一个CLR函数来调用C#函数,但我希望能在T-SQL中完成这一切。手动转换 select id, sum(cast
varchar
存储在SQL Server数据库中。这个7位二进制数据最终需要转换成整数。我试图获取这个二进制字符串,然后转换成varbinary
,然后转换成整数。对varbinary
的转换可以接受十六进制字符串,但是我找不到一种方法让这个转换接受二进制字符串
示例字符串:
0000010
0000100
0001001
这些应转换为:
2
4
9
我可以创建一个CLR函数来调用C#函数,但我希望能在T-SQL中完成这一切。手动转换
select id, sum(cast(substring(str, 7-p.pos, 1) as int) * power(2, p.pos)) val
from (
SELECT 1 id, '0001001' str union all
SELECT 2 id, '0001011' str
) t
cross apply (
values
(0)
,(1)
,(2)
,(3)
,(4)
,(5)
,(6)
) p(pos)
group by id
手工兑换
select id, sum(cast(substring(str, 7-p.pos, 1) as int) * power(2, p.pos)) val
from (
SELECT 1 id, '0001001' str union all
SELECT 2 id, '0001011' str
) t
cross apply (
values
(0)
,(1)
,(2)
,(3)
,(4)
,(5)
,(6)
) p(pos)
group by id
只需创建一个包含128个可能字符串和值的表并从中查找即可创建一个包含128个可能字符串和值的表并从中查找即可!非常感谢。天才!非常感谢。