需要帮助格式化MySQL查询的CONCAT()

需要帮助格式化MySQL查询的CONCAT(),mysql,sql,concatenation,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)

我有一个表,试图获取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;2014年7月


问题是我正在使用
+
尝试这样做,这实际上是将值相加。相反,我知道我需要使用
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