我试图找到一种方法将两列合并为一列,但不断在列中获取值“0”而不是单词的组合。MySQL将两列合并为一列
这些是我已经试过以及其他:
SELECT column1 + column2 AS column3
FROM table;
SELECT column1 || column2 AS column3
FROM table;
SELECT column1 + ' ' + column2 AS column3
FROM table;
可能有人请让我知道我做错了吗?
我试图找到一种方法将两列合并为一列,但不断在列中获取值“0”而不是单词的组合。MySQL将两列合并为一列
这些是我已经试过以及其他:
SELECT column1 + column2 AS column3
FROM table;
SELECT column1 || column2 AS column3
FROM table;
SELECT column1 + ' ' + column2 AS column3
FROM table;
可能有人请让我知道我做错了吗?
我的猜测是,您正在使用MySQL,其中+
运算符会添加,并将值无声转换为数字。如果值不以数字开头,则转换后的值为0
。
那么试试这个:
select concat(column1, column2)
两种方式来添加一个空格:
select concat(column1, ' ', column2)
select concat_ws(' ', column1, column2)
这是一个将工作对我来说,当我需要的列之间的空间是唯一的解决办法合并。
select concat(concat(column1,' '), column2)
我已经使用这个方法及其最佳永远。在这段代码也无效处理
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)
如果您正在使用Oracle
然后:
SELECT column1 || column2 AS column3
FROM table;
OR
如果您正在使用的MySQL然后:
SELECT Concat(column1 ,column2) AS column3
FROM table;
- 用于实例:组数字的列.... - 当用数字合并列,你必须投从#DATA类型的列字符串 --otherwise SQL会添加这些在相同的列/结果中一起编号。
select cast(shipperid as varchar)+'| '+ cast(empid as varchar) from sales.Orders
您使用的数据库是?这两列的类型是什么? –
mySQL web客户端 – aab
[将两个数据库列连接到一个结果集列]可能的重复(http://stackoverflow.com/questions/6427764/concatenate-two-database-columns-into-one-resultset-column) –