在 Oracle SQL Developer 中使用字符串连接未以所需格式输出

问题描述

我有一个 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;