【问题标题】:Redshift - Merging two columnsRedshift - 合并两列
【发布时间】:2019-03-20 15:03:45
【问题描述】:

我有两列分别包含客户名称和产品名称。我想将这两列与它们之间的“ - ”合并。

任何人都可以就如何做到这一点提出建议。我正在使用红移。我尝试了concatstring_agg,但我想看看是否有没有group by 的替代方法。

customer_name, product_name, expected_output
Kev, Prod_A, Kev - Prod_A

【问题讨论】:

    标签: sql string merge concatenation amazon-redshift


    【解决方案1】:

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

    SELECT
        customer_name,
        product_name,
        CONCAT(CONCAT(customer_name, ' - '), product_name) AS output
    FROM yourTable;
    

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

    【讨论】:

      【解决方案2】:

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

      SELECT customer_name, product_name, customer_name || ' - ' || product_name AS output
      FROM   mytable
      

      【讨论】:

      • 但请注意,如果您要连接的任何列是NULL,则结果将变为NULL,例如。 SELECT 'foo' || 'bar' || 'baz' || NULL;
      猜你喜欢
      • 2021-03-13
      • 1970-01-01
      • 1970-01-01
      • 2014-08-01
      • 2012-12-28
      • 2019-01-09
      • 1970-01-01
      • 1970-01-01
      • 2022-09-27
      相关资源
      最近更新 更多