Respuestas:
Es ||
, por ejemplo:
select 'Mr ' || ename from emp;
La única característica "interesante" que se me ocurre es que 'x' || null
regresa 'x'
, no null
como se podría esperar.
||
en Oracle no es un operador lógico, por lo tanto, 'x'||null
devuelve x
.
AND
, NOT
etc., por supuesto, ||
no es un operador lógico. Pero, ¿qué tiene eso que ver con el 'x'||null
regreso x
? n+null
devuelve nulo, entonces ¿es +
un operador lógico?
También hay concat, pero no se usa mucho
select concat('a','b') from dual;
CONCAT
También es compatible con otros DBMS (al menos MySQL y Postgres).
nvl()
)
CONCAT
tambié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 YYYYMMDD
de la YYYY-MM-DD
siguiente 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