需要帮助格式化CONCAT()以进行MySQL查询

时间:2014-03-08 13:38:17

标签: mysql sql concatenation

我有一个表,我试图获取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()来合并值。我不清楚如何拉出各个值然后根据需要连接它们。

1 个答案:

答案 0 :(得分:0)

如果您的查询是正确的,那么您需要做的就是将所有要连接的字符串 - 逗号分隔 - 包含在调用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