Respostas:
É ||
, por exemplo:
select 'Mr ' || ename from emp;
A única característica "interessante" em que consigo pensar é que 'x' || null
retorna 'x'
, não null
como você pode esperar.
||
no Oracle não é um operador lógico, portanto, 'x'||null
retorna x
.
AND
, NOT
etc, então é claro que ||
não é um operador lógico. Mas o que isso tem a ver com o 'x'||null
retorno x
? n+null
retorna nulo, então é +
um operador lógico?
Há também concat, mas não se acostuma muito
select concat('a','b') from dual;
CONCAT
também é compatível com outros DBMSes (pelo menos MySQL e Postgres).
nvl()
.)
CONCAT
também está disponível no Microsoft SQL Server 2012 e posteriores . CONCAT, embora não padrão, é definitivamente o caminho a percorrer, se você deseja que seu código seja portátil. ( ||
É o operador padrão real ANSI, embora você não saberia que, olhando para o apoio para ele!)
Eu sugeriria concat ao lidar com 2 strings e || quando essas cadeias são mais de 2:
select concat(a,b)
from dual
ou
select 'a'||'b'||'c'||'d'
from dual
concat(a,b)
mais a||b
?
Usando CONCAT(CONCAT(,),)
funcionou para mim ao concatenar mais de duas strings.
Meu problema exigia trabalhar com seqüências de datas (apenas) e criar a YYYYMMDD
partir da YYYY-MM-DD
seguinte (ou seja, sem converter para o formato de data):
CONCAT(CONCAT(SUBSTR(DATECOL,1,4),SUBSTR(DATECOL,6,2)),SUBSTR(DATECOL,9,2)) AS YYYYMMDD