Redshift - 合并两列

Kev*_*ash 2 sql string merge concatenation amazon-redshift

我有两列具有客户名称和产品名称.我想将这两列合并在它们之间的' - '.

任何人都可以建议如何做到这一点.我正在使用Redshift.我尝试了concat,string_agg但我试图看看是否有一种替代方式没有group by.

customer_name, product_name, expected_output
Kev, Prod_A, Kev - Prod_A
Run Code Online (Sandbox Code Playgroud)

Tim*_*sen 7

您可以使用||@Mureinik 提到的连接运算符。但是,我们也可以在CONCAT这里使用该函数:

SELECT
    customer_name,
    product_name,
    CONCAT(CONCAT(customer_name, ' - '), product_name) AS output
FROM yourTable;
Run Code Online (Sandbox Code Playgroud)

我对为什么CONCAT不适合你的猜测是你试图向它传递 2 个以上的参数。 CONCAT在 Redshift 中只需要两个参数,因此我们必须将它们链接到此处才能使其工作。


Mur*_*nik 5

您可以使用||运算符来连接字符串:

SELECT customer_name, product_name, customer_name || ' - ' || product_name AS output
FROM   mytable
Run Code Online (Sandbox Code Playgroud)

  • 但请注意,如果您连接的任何列是“NULL”,结果将变为“NULL”,例如。`选择'foo' || '酒吧' || '巴兹' || 空;` (5认同)