我想在UUID上加入两个表。表A的UUID表示为varchar(32)。表B的UUID表示为二进制(16)。
将varchar加入二进制列的最佳方法是什么?
我已经尝试过使用一些sybase函数,但是我得到了不同的结果并且不确定原因:
select hextobigint('0x000036ca4c4c11d88b8dcd1344cdb512')
3948051912944290701
select convert(bigint,0x000036ca4c4c11d88b8dcd1344cdb512)
-2877434794219274240
我对转换和hextobigint缺少什么?我必须至少误解其中一项功能。谢谢你的帮助!
答案 0 :(得分:1)
最终在一些同事的帮助下得到了它:
select strtobin(convert(char(32), '000036ca4c4c11d88b8dcd1344cdb512'))
答案 1 :(得分:0)
问题出在select convert(bigint,0x000036ca4c4c11d88b8dcd1344cdb512)
。
如果删除第一个零,它会给你相同的结果:
select hextobigint('0x000036ca4c4c11d88b8dcd1344cdb512')
和
select convert(bigint,0x36ca4c4c11d88b8dcd1344cdb512)