我试图找到一种方法将两列合二为一,但不断获得价值' 0'在列中而不是单词的组合。
这些是我和其他人一样的尝试:
SELECT column1 + column2 AS column3
FROM table;
SELECT column1 || column2 AS column3
FROM table;
SELECT column1 + ' ' + column2 AS column3
FROM table;
有人可以让我知道我做错了吗?
答案 0 :(得分:141)
我的猜测是你使用的是+
运算符添加的MySQL,以及将值静默转换为数字。如果值不以数字开头,则转换后的值为0
。
所以试试这个:
select concat(column1, column2)
添加空间的两种方法:
select concat(column1, ' ', column2)
select concat_ws(' ', column1, column2)
答案 1 :(得分:17)
试试这个,它对我有用
select (column1 || ' '|| column2) from table;
答案 2 :(得分:11)
它为我工作
SELECT CONCAT(column1, ' ' ,column2) AS newColumn;
答案 3 :(得分:4)
这是唯一对我有用的解决方案,当我在要合并的列之间需要一个空格时。
select concat(concat(column1,' '), column2)
答案 4 :(得分:3)
对于MySQL粉丝,我喜欢IFNULL()
功能。这里的其他答案表明在某些实现中具有ISNULL()
函数的类似功能。在我的情况下,我有一列描述NOT NULL
,以及一列序列号,可能是NULL
这就是我将它们组合成一列的方式:
SELECT CONCAT(description,IFNULL(' SN: ', serial_number),'')) FROM my_table;
我的结果表明,将字符串与NULL
连接的结果会产生NULL
。在这些情况下,我一直在获得替代价值。
答案 5 :(得分:3)
如果您正在工作Oracle
那么:
SELECT column1 || column2 AS column3
FROM table;
OR
如果您正在使用MySql那么:
SELECT Concat(column1 ,column2) AS column3
FROM table;
答案 6 :(得分:1)
我用这种方式,它永远是最好的。在此代码中,null也处理
SELECT Title,
FirstName,
lastName,
ISNULL(Title,'') + ' ' + ISNULL(FirstName,'') + ' ' + ISNULL(LastName,'') as FullName
FROM Customer
试试这个......
答案 7 :(得分:0)
convert(varchar, column_name1) + (varchar, column_name)
答案 8 :(得分:0)
SELECT Collumn1 + ' - ' + Collumn2 AS 'FullName' FROM TableName
答案 9 :(得分:0)
表:
---------------------
| 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 |
---------------------
答案 10 :(得分:0)
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);