【问题标题】:Need help formatting CONCAT() for MySQL query需要帮助格式化 CONCAT() 以进行 MySQL 查询
【发布时间】:2014-03-08 13:38:17
【问题描述】:

我有一个表,我试图在其中获取 3 个数据库表值并将它们重新格式化为一个值。这是我目前拥有的SQL语句:

SELECT 
  CASE WHEN cb_cardtype = 'Discover Credit Card' 
       THEN 'DS' 
       END + 
       ';' + RIGHT(cardnumbers,4) + ';' + LPAD(MONTH(planexpdate), 2, '0') +
       '/' + LPAD(YEAR(planexpdate), 2, '0') AS account_billing_key 
FROM my_table

所以我想在这里得到的输出是:

DS;4242;07/14

问题是我正在使用+ 来尝试此操作,这实际上将值相加。相反,我知道我需要使用 CONCAT() 来合并这些值。我不清楚如何提取各个值,然后根据需要将它们连接起来。

【问题讨论】:

    标签: mysql sql concatenation


    【解决方案1】:

    如果您的查询在其他方面是正确的,您需要做的就是将要连接的所有字符串(逗号分隔)包装在对 CONCAT 的调用中;

    SELECT 
      CONCAT(
        CASE WHEN cb_cardtype = 'Discover Credit Card' THEN 'DS' END, 
        ';', 
        RIGHT(cardnumbers,4), 
        ';', 
        LPAD(MONTH(planexpdate), 2, '0'),
        '/', 
        LPAD(YEAR(planexpdate), 2, '0')
      ) AS account_billing_key 
    FROM my_table
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多