Antworten:
Es ist ||zum Beispiel:
select 'Mr ' || ename from emp;
Das einzige "interessante" Merkmal, an das ich denken kann, ist die 'x' || nullRückkehr 'x', nicht nullwie Sie vielleicht erwarten.
||in Oracle ist kein logischer Operator, daher wird 'x'||nullzurückgegeben x.
AND, NOTdann ist dies natürlich ||kein logischer Operator. Aber was hat das mit der 'x'||nullRückkehr zu tun x? n+nullgibt null zurück, ist also +ein logischer Operator?
Es gibt auch concat, aber es wird nicht viel gewöhnt
select concat('a','b') from dual;
CONCATist auch mit anderen DBMS kompatibel (mindestens MySQL und Postgres).
nvl().)
CONCATist auch in Microsoft SQL Server 2012 und höher verfügbar . CONCAT ist zwar kein Standard, aber definitiv der richtige Weg, wenn Sie möchten, dass Ihr Code portabel ist. ( ||ist der eigentliche ANSI-Standardoperator, obwohl Sie es nicht wissen würden, wenn Sie sich die Unterstützung dafür ansehen!)
Ich würde concat vorschlagen, wenn es um 2 Strings geht, und || wenn diese Zeichenfolgen mehr als 2 sind:
select concat(a,b)
from dual
oder
select 'a'||'b'||'c'||'d'
from dual
concat(a,b)über a||b?
Verwenden von CONCAT(CONCAT(,),) hat bei mir funktioniert, wenn mehr als zwei Zeichenfolgen verkettet wurden.
Mein Problem erforderlich mit Datum Strings arbeiten (nur) und die Schaffung YYYYMMDDvon YYYY-MM-DDwie folgt (dh ohne Datumsformat zu konvertieren):
CONCAT(CONCAT(SUBSTR(DATECOL,1,4),SUBSTR(DATECOL,6,2)),SUBSTR(DATECOL,9,2)) AS YYYYMMDD