我的表有一个列,我知道它是一个 128 位无符号数,以 varchar 形式存储在 base-10 中,例如
"25495123833603613494099723681886"
我知道这个数字中的位域,我想使用GROUP BY
.
在我的示例中,前 64 位将是1382093432409
我还没有找到方法,但我已经消除了一些线索:
- 无法转换为
NUMERIC
/DECIMAL
因为这些也是 64 位的 - 不能使用
LEFT()
,因为1<<64
不是 base-10 对齐的 CONV(N,10,16)
将允许LEFT()
但CONV()
也只能以 64 位精度工作:(
我怎样才能得到BIGINT
这个数字的前 64 位,所以我可以在GROUP BY
?