Respuestas:
Es ||, por ejemplo:
select 'Mr ' || ename from emp;
La única característica "interesante" que se me ocurre es que 'x' || nullregresa 'x', no nullcomo se podría esperar.
||en Oracle no es un operador lógico, por lo tanto, 'x'||nulldevuelve x.
AND, NOTetc., por supuesto, ||no es un operador lógico. Pero, ¿qué tiene eso que ver con el 'x'||nullregreso x? n+nulldevuelve nulo, entonces ¿es +un operador lógico?
También hay concat, pero no se usa mucho
select concat('a','b') from dual;
CONCATTambién es compatible con otros DBMS (al menos MySQL y Postgres).
nvl())
CONCATtambién está disponible en Microsoft SQL Server 2012 y en adelante . CONCAT, aunque no estándar, es definitivamente el camino a seguir si desea que su código sea portátil. ( ||es el operador estándar ANSI real, ¡aunque no lo sabrías si buscas el soporte!)
Sugeriría concat cuando se trata de 2 cadenas, y || cuando esas cadenas son más de 2:
select concat(a,b)
from dual
o
select 'a'||'b'||'c'||'d'
from dual
concat(a,b)hacerlo a||b?
El uso CONCAT(CONCAT(,),)funcionó para mí al concatenar más de dos cadenas.
Mi problema requería trabajar con cadenas de fecha (solo) y crear YYYYMMDDde la YYYY-MM-DDsiguiente manera (es decir, sin convertir al formato de fecha):
CONCAT(CONCAT(SUBSTR(DATECOL,1,4),SUBSTR(DATECOL,6,2)),SUBSTR(DATECOL,9,2)) AS YYYYMMDD