如何在 Amazon Redshift 中将整数转换为位字符串?

Posted

技术标签:

【中文标题】如何在 Amazon Redshift 中将整数转换为位字符串?【英文标题】:How to convert integer to bit string in Amazon Redshift? 【发布时间】:2017-07-18 17:45:37 【问题描述】:

如何在 Amazon Redshift 中将无符号整数转换为二进制字符串?例如对于数字 10,我想得到“1010”。

我找到了a UDF that does this,但我不想使用任何 UDF。

【问题讨论】:

您可以...使用您链接到的 udf 定义中的代码... @Siyual 但它是在 Python 中... 【参考方案1】:

有人编写了这个 UDF 的事实表明 Redshift 的 SQL 中没有内置功能可以执行此操作。

如果你不想使用 UDF,你可以创建一个包含所有二进制值的查找表,然后加入它。这可能比重复运行 Python 函数更快,但我注意到该函数被编码为STABLE,因此它会缓存结果。

【讨论】:

感谢您的回答。我这样做了。有一些方法可以在没有 UDF 的情况下完成,但它们很长且难以理解,例如。 SELECT (bit_col%2+(bit_col>>1)%2+(bit_col>>2)%2+(bit_col>>3)%2+(bit_col>>4)%2+(bit_col>>5)%2+(bit_col>>6)%2+(bit_col>>7)%2)::INT2.

以上是关于如何在 Amazon Redshift 中将整数转换为位字符串?的主要内容,如果未能解决你的问题,请参考以下文章

如何减少在 Amazon Redshift 中将 pandas 数据帧写入表的时间

如何在 Amazon Redshift 中将列从字符串更改为日期?

无法在 Amazon Redshift 中将时间戳转换为日期

在 Amazon Redshift 中检查数字是整数还是浮点数

在 Redshift 中将 null 插入整数类型列

在 Redshift 中将 MD5 输出转换为 32 位整数