Respostas:
É ||, por exemplo:
select 'Mr ' || ename from emp;
A única característica "interessante" em que consigo pensar é que 'x' || nullretorna 'x', não nullcomo você pode esperar.
||no Oracle não é um operador lógico, portanto, 'x'||nullretorna x.
AND, NOTetc, então é claro que ||não é um operador lógico. Mas o que isso tem a ver com o 'x'||nullretorno x? n+nullretorna nulo, então é +um operador lógico?
Há também concat, mas não se acostuma muito
select concat('a','b') from dual;
CONCATtambém é compatível com outros DBMSes (pelo menos MySQL e Postgres).
nvl().)
CONCATtambé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 YYYYMMDDpartir da YYYY-MM-DDseguinte (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