Cos'è l'operatore di concatenazione di stringhe in Oracle SQL?
Ci sono delle caratteristiche "interessanti" che dovrei fare attenzione?
(Questo sembra ovvio, ma non sono riuscito a trovare una domanda precedente che lo ponga).
Cos'è l'operatore di concatenazione di stringhe in Oracle SQL?
Ci sono delle caratteristiche "interessanti" che dovrei fare attenzione?
(Questo sembra ovvio, ma non sono riuscito a trovare una domanda precedente che lo ponga).
Risposte:
Ad ||esempio:
select 'Mr ' || ename from emp;
L'unica caratteristica "interessante" a cui riesco a pensare è che 'x' || nullritorni'x' , non nullcome forse ti aspetteresti.
||in Oracle non è un operatore logico, quindi, 'x'||nullritorna x.
AND, NOTecc. allora ovviamente ||non è un operatore logico. Ma che cosa ha a che fare con il 'x'||nullritorno x? n+nullrestituisce null, quindi è +un operatore logico?
C'è anche concat, ma non viene molto usato
select concat('a','b') from dual;
CONCATè anche compatibile con altri DBMS (almeno MySQL e Postgres).
nvl().)
CONCATè disponibile anche in Microsoft SQL Server 2012 e versioni successive . CONCAT, sebbene non standard, è sicuramente la strada da percorrere se vuoi che il tuo codice sia portatile. ( ||è l'effettivo operatore standard ANSI, anche se non lo sapresti guardando il supporto per questo!)
Suggerirei concat quando si tratta di 2 stringhe e || quando quelle stringhe sono più di 2:
select concat(a,b)
from dual
o
select 'a'||'b'||'c'||'d'
from dual
concat(a,b)sopra a||b?
L'utilizzo ha CONCAT(CONCAT(,),)funzionato per me durante la concatenazione di più di due stringhe.
Il mio problema richiesto lavorare con stringhe di data (solo) e la creazione YYYYMMDDda YYYY-MM-DDcome segue (cioè senza conversione al formato della data):
CONCAT(CONCAT(SUBSTR(DATECOL,1,4),SUBSTR(DATECOL,6,2)),SUBSTR(DATECOL,9,2)) AS YYYYMMDD