[英]How do I convert a hexadecimal number into binary in Redshift?
我正在尝试将十六进制数字转换为二进制。 我一直找不到能够正常工作的redshift函数。
我已经尝试了以下两个功能:
选择strtol('4D',2)&选择to_binary('4D')
(to_binary函数不存在,但to_hex存在)
我也尝试过找到Python UDF,但没有运气。
示例:如果将十六进制4D转换为二进制,则期望01001101
这是UDF要做的相同
create function hex_to_bin(h varchar)
returns varchar immutable as $$
return bin(int(h,16))[2:]
$$ language plpythonu;
select hex_to_bin('4D');
hex_to_bin
1001101
更新:具有前导零的新版本。 需要第二个参数来指定输出的长度
create or replace function hex_to_bin(h varchar, number_of_bits int)
returns varchar immutable as $$
return bin(int(h,32))[2:].zfill(number_of_bits)
$$ language plpythonu;
select hex_to_bin('4D',10);
hex_to_bin
0010001101
\n\n
dec = int('4D', 16); print("in Binary =",bin(dec))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.