需要帮助格式化MySQL查询的CONCAT()
我有一个表,试图获取3个数据库表值,并将它们重新格式化为一个值。下面是我目前拥有的SQL语句:需要帮助格式化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)
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