为 SQL Redshift 连接两个整数的最佳方法是啥?

Posted

技术标签:

【中文标题】为 SQL Redshift 连接两个整数的最佳方法是啥?【英文标题】:What's the best way to concat two integers for SQL Redshift?为 SQL Redshift 连接两个整数的最佳方法是什么? 【发布时间】:2020-12-20 00:43:19 【问题描述】:

我正在尝试创建一个简单的键值,它看起来像“subid_pid”,其中 subid 和 pid 是整数。 我尝试做 concat(subid+'_'+pid) 并试图找出我做错了什么

【问题讨论】:

不能连接两个整数。 [思考:类型] 【参考方案1】:

+ 是字符串算术。要连接字符串,请使用 || 运算符。 Redshift 应该自动转换数字。所以,你只需要:

(subid || '_' || pid)

如果你真的想要显式转换,那么text 很方便:

(subid::text || '_' || pid::text)

【讨论】:

谢谢。 (subid || '_' || pid) 有效,但是当我对这些值进行计数时,它正在做一些可疑的事情。计数错误。 @Lgdance 。 . .这回答了你在这里提出的问题,而这个问题与计算任何东西无关。我建议您使用适当的样本数据和期望的结果提出一个新问题。【参考方案2】:

您可以将整数转换为字符串并与|| 连接:

subid::varchar(20) || '_' || pid::varchar(20)

【讨论】:

做字符串好还是文字好? @Lgdance:这里都可以。 感谢 beaucoup 专线小巴***.com/users/10676716/gmb

以上是关于为 SQL Redshift 连接两个整数的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

在 SQL(Redshift)中将字符串(43677)转换为日期格式 [关闭]

在 Redshift 中使用连接的最佳方式

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

如何在 AMAZON REDSHIFT 中将 userip 转换为整数

是否可以为 AWS REDSHIFT 连接位于两个不同数据库中的两个不同表中的数据。

Redshift join 与 varchar(40) 和 23 亿行