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