【发布时间】:2018-05-03 22:47:14
【问题描述】:
我不是特别擅长处理数据库,但是有没有办法将二进制数据表示为一种 base 2 字符串?我使用 TSQL。无论我做什么,我得到的二进制值最多表示为 16 个基数的字符串。例如,我在一个单元格中有500,我希望它显示/处理为“0b111110100”而不是“0x01F4”。这个
CONVERT(VARCHAR, cast(500 as binary(2)), 1)
给0x01F4,而我想得到111110100或类似的东西。
我没有找到任何合适的内置函数。但是,我遇到了一个可怕且相当复杂的过程,将 base 16 字符串转换为 base 2 字符串。我也可以考虑使用嵌套的replace() 调用值来用1111 等替换F,但感觉不对。
整个目的是在它们的二进制表示中找到连续至少有 4 个1s 的值。我的方法:如果我可以让它们看起来像'0b111110100',它就像LIKE %1111% 一样简单。还是我做错了?
【问题讨论】:
-
看看这是否有帮助。此函数将转换为二进制字符串,然后您可以查找您想要的内容。 dpatrickcaldwell.blogspot.com/2009/05/…
-
谢谢!我会仔细看看的。与我之前遇到的功能相比,该功能看起来不那么令人生畏。
-
你也可以参考这个已经问过和回答过的,希望对你有帮助:sql-convert-number-to-string-representation-of-any-base-binary-hexadecimal
标签: sql tsql binary type-conversion hex