如何在 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 中将时间戳转换为日期