¿Cuál es el operador de concatenación de cadenas en Oracle SQL?
¿Hay alguna característica "interesante" de la que deba tener cuidado?
(Esto parece obvio, pero no pude encontrar una pregunta previa al respecto).
¿Cuál es el operador de concatenación de cadenas en Oracle SQL?
¿Hay alguna característica "interesante" de la que deba tener cuidado?
(Esto parece obvio, pero no pude encontrar una pregunta previa al respecto).
Respuestas:
Es
||, por ejemplo:La única característica "interesante" que se me ocurre es que
'x' || nullregresa'x', nonullcomo se podría esperar.fuente
||en Oracle no es un operador lógico, por lo tanto,'x'||nulldevuelvex.AND,NOTetc., por supuesto,||no es un operador lógico. Pero, ¿qué tiene eso que ver con el'x'||nullregresox?n+nulldevuelve nulo, entonces ¿es+un operador lógico?También hay concat, pero no se usa mucho
fuente
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:
o
fuente
concat(a,b)hacerloa||b?salida :: Abc def
fuente
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 laYYYY-MM-DDsiguiente manera (es decir, sin convertir al formato de fecha):fuente