MySQL 将两列合并为一列

我试图找到一种将两列合并为一列的方法,但是保持将列中的值“0”改为单词的组合。

以下是我和其他人一样尝试过的方法:

SELECT column1 + column2 AS column3
FROM table;


SELECT column1 || column2 AS column3
FROM table;


SELECT column1 + ' ' + column2 AS column3
FROM table;

有人能告诉我哪里做错了吗?

827608 次浏览

我的猜测是,您正在使用 MySQL,其中 +操作符执行加法操作,同时将值静默地转换为数字。如果值不以数字开头,则转换后的值为 0

试试这个:

select concat(column1, column2)

添加空格的两种方法:

select concat(column1, ' ', column2)
select concat_ws(' ', column1, column2)

这是唯一适合我的解决方案,当我需要在合并的列之间留出空间时。

select concat(concat(column1,' '), column2)

试试这个,对我有用

select (column1 || ' '|| column2) from table;

我已经使用这种方式,它是最好的永远。在这个代码空也处理

SELECT Title,
FirstName,
lastName,
ISNULL(Title,'') + ' ' + ISNULL(FirstName,'') + ' ' + ISNULL(LastName,'') as FullName
FROM Customer

试试这个..。

对于 MySQL 爱好者来说,我喜欢 IFNULL()函数。这里的其他答案建议在某些实现中使用与 ISNULL()函数类似的功能。在我的情况下,我有一列描述是 NOT NULL,和一列序列号可能是 NULL这是我如何将它们组合成一列:

SELECT CONCAT(description,IFNULL(' SN: ', serial_number),'')) FROM my_table;

我的结果表明,将字符串与 NULL连接的结果是 NULL。我已经得到了这些情况下的替代价值。

这是我的工作

SELECT CONCAT(column1, ' ' ,column2) AS newColumn;
convert(varchar, column_name1) + (varchar, column_name)
SELECT Column1 + ' - ' + Column2 AS 'FullName' FROM TableName

如果你正在为 Oracle工作,那么:

SELECT column1 || column2 AS column3
FROM table;

或者

如果你正在研究 MySql,那么:

SELECT Concat(column1 ,column2) AS column3
FROM table;

表:

---------------------
| column1 | column2 |
---------------------
|   abc   |   xyz   |
---------------------

Oracle:

SELECT column1 || column2 AS column3
FROM table_name;

产出:

表:

---------------------
| column3           |
---------------------
| abcxyz            |
---------------------

如果您想将 ',''.'或任何字符串放在两列数据中,那么您可以使用:

SELECT column1 || '.' || column2 AS column3
FROM table_name;

产出:

表:

---------------------
| column3           |
---------------------
| abc.xyz           |
---------------------
SELECT   CONVERT (nvarchar (10), Month(NextDate))+'-'+CONVERT (nvarchar (10), Year(NextDate)) as MonthOfYear, COUNT(CaseNo) as CountDisposal
FROM dbo.Main_Cause_List
WHERE (DisposalState = 'Dispossed-off')
GROUP BY Month(NextDate),Year(NextDate);

尝试使用 coalesce()concat()组合 SQL 查询中的列。

假设在 使用者表中有4列 (id、 name、 phone _ number、 country _ code),并且希望以这种格式打印电话号码: + 国家代码号码

例如: 1,vishnu,9961907453,91将返回电话号码 + 919961907453。

您可以使用以下查询获得上述结果。

select coalesce(concat('+', country_code, phone_number)) from user;