问题描述
我有一个 CUSTOMER 表,必须将由逗号和空格“,”分隔的 FirstName 和 LastName 列连接到一个名为 CustomerName 的新列中。
所需的输出类似于:
CustomerName
----------------------
FirstName1,LastName1
FirstName2,LastName2
FirstName3,LastName3
但我的实际输出是:
CustomerName
----------------------------------------
FirstName1,LastName3
我试过嵌套 CONCAT 函数:
SELECT CONCAT(CONCAT(FirstName,','),LastName) "CustomerName"
FROM CUSTOMER;
我也尝试过使用双管道连接运算符 (||):
SELECT FirstName ||','|| LastName "CustomerName"
FROM Customer;
这两个部分的代码产生相同的输出,其中每一列被大量空格分隔,而不是一个空格。
解决方法
您只需要在连接之前修剪值。 你有这个问题的原因很简单 - db 存储固定长度的值,所以当你选择它时 - 它用空值填充未使用的部分 - 空格
,似乎您的数据类型只是 char 而不是 var 或已节省大量空间,最好将您的数据类型更改为 var,如果不是,您可以修剪它们:
SELECT TRIM(FirstName) ||','|| TRIM(LastName) "CustomerName"
FROM Customer;