私のテーブルには、128ビットの符号なし数値であることがわかっている列があり、base-10にvarcharとして格納されています。
"25495123833603613494099723681886"
この数値のビット フィールドはわかっているので、上位 64 ビットを使用したいと考えていますGROUP BY
。
私の例では、上位の 64 ビットは次のようになります。1382093432409
方法は見つかりませんでしたが、いくつかのリードを排除しました:
- これらも64ビットであるため、
NUMERIC
/に変換できませんDECIMAL
- は base-10 で整列されていない
LEFT()
ため使用できません1<<64
CONV(N,10,16)
許可しますLEFT()
がCONV()
、64ビット精度でも機能します:(
BIGINT
この数値の上位 64 ビットを取得するにはどうすればよいGROUP BY
ですか?