I would like to concatenate 2 strings/fields from a table into one additional attribute and have it wrapped around the “ ‘ ” character using an sql select statement in oracle.
This statement
x
select SISTEMA, SUBSISTEMA, SISTEMA||'-'||SUBSISTEMA AS Concatenate
from VETROCOCONDUTA
produces
SISTEMA SUBSISTEMA Concatenate
"AdZC","Meruge","AdZC-Meruge"
1
select SISTEMA, SUBSISTEMA, SISTEMA||'-'||SUBSISTEMA AS Concatenate
from VETROCOCONDUTA
valid code but not what I want
2
select SISTEMA, SUBSISTEMA, '||SISTEMA||'-'||SUBSISTEMA||' AS Concatenate
from VETROCOCONDUTA
Error report – ORA-01722: número inválido
3 Error
select SISTEMA, SUBSISTEMA, ||'||SISTEMA||'-'||SUBSISTEMA||'|| AS Concatenate
from VETROCOCONDUTA
SQL Error: ORA-00936: falta expressão 00936. 00000 – “missing expression”
I want the code to produce:
SISTEMA SUBSISTEMA Concatenate
"AdZC","Meruge",'AdZC-Meruge'
Advertisement
Answer
You need to concatenate ''''
at the start and at the end of the concatenated columns:
select
SISTEMA,
SUBSISTEMA,
'''' || SISTEMA || '-' || SUBSISTEMA || '''' AS Concatenate
from VETROCOCONDUTA
See the demo.
Result:
> SISTEMA | SUBSISTEMA | CONCATENATE
> :------ | :--------- | :------------
> AdZC | Meruge | 'AdZC-Meruge'
If there are really double quotes in the columns and you want them removed:
select
SISTEMA,
SUBSISTEMA,
'''' || replace(SISTEMA, '"', '') || '-' || replace(SUBSISTEMA, '"', '') || '''' AS Concatenate
from VETROCOCONDUTA
See the demo.
Result:
> SISTEMA | SUBSISTEMA | CONCATENATE
> :------ | :--------- | :------------
> "AdZC" | "Meruge" | 'AdZC-Meruge'