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