MySQL combineert twee kolommen in één kolom

Ik probeer een manier te vinden om twee kolommen in één te combineren, maar krijg steeds de waarde ‘0’ in de kolom in plaats van de combinatie van de woorden.

Dit is wat ik net zo goed heb geprobeerd als anderen:

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

Kan iemand me alsjeblieft laten weten wat ik verkeerd doe?


Antwoord 1, autoriteit 100%

Mijn gok is dat je MySQL gebruikt waar de operator + optelt, samen met de stille conversie van de waarden naar getallen. Als een waarde niet met een cijfer begint, is de omgerekende waarde 0.

Dus probeer dit:

select concat(column1, column2)

Twee manieren om een ​​spatie toe te voegen:

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

Antwoord 2, autoriteit 14%

Probeer dit, het werkt voor mij

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

Antwoord 3, autoriteit 7%

Het is werk voor mij

SELECT CONCAT(column1, ' ' ,column2) AS newColumn;

Antwoord 4, autoriteit 3%

Dit is de enige oplossing die voor mij zou werken, wanneer ik een spatie nodig had tussen de kolommen die worden samengevoegd.

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

Antwoord 5, autoriteit 3%

Als u aan Oracle werkt, dan:

SELECT column1 || column2 AS column3
FROM table;

OF

Als u aan MySql werkt, dan:

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

Antwoord 6, autoriteit 2%

Voor de MySQL-fans die er zijn, ik hou van de functie IFNULL(). Andere antwoorden hier suggereren vergelijkbare functionaliteit met de functie ISNULL() in sommige implementaties. In mijn situatie heb ik een kolom met beschrijvingen die NOT NULL is, en een kolom met serienummers die NULL kunnen zijn. Dit is hoe ik ze in één kolom heb gecombineerd:

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

Mijn resultaten suggereren dat de resultaten van het aaneenschakelen van een string met NULL resulteren in een NULL. In die gevallen heb ik de alternatieve waarde gekregen.


Antwoord 7

Ik heb deze manier gebruikt en het is voor altijd een beste. In deze code wordt null ook verwerkt

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

Probeer dit…


Antwoord 8

tabel:

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

In Oracle:

SELECT column1 || column2 AS column3
FROM table_name;

Uitvoer:

tabel:

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

Als u ',' of '.' of een willekeurige tekenreeks binnen twee kolomgegevens wilt plaatsen, kunt u het volgende gebruiken:

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

Uitvoer:

tabel:

---------------------
| column3           |
---------------------
| abc.xyz           |
---------------------

Antwoord 9

convert(varchar, column_name1) + (varchar, column_name)

Antwoord 10

SELECT Column1 + ' - ' + Column2 AS 'FullName' FROM TableName                              

Antwoord 11

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);

LEAVE A REPLY

Please enter your comment!
Please enter your name here

14 + seven =

Other episodes