Antworten:
Es ist ||
zum Beispiel:
select 'Mr ' || ename from emp;
Das einzige "interessante" Merkmal, an das ich denken kann, ist die 'x' || null
Rückkehr 'x'
, nicht null
wie Sie vielleicht erwarten.
||
in Oracle ist kein logischer Operator, daher wird 'x'||null
zurückgegeben x
.
AND
, NOT
dann ist dies natürlich ||
kein logischer Operator. Aber was hat das mit der 'x'||null
Rückkehr zu tun x
? n+null
gibt 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;
CONCAT
ist auch mit anderen DBMS kompatibel (mindestens MySQL und Postgres).
nvl()
.)
CONCAT
ist 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 YYYYMMDD
von YYYY-MM-DD
wie folgt (dh ohne Datumsformat zu konvertieren):
CONCAT(CONCAT(SUBSTR(DATECOL,1,4),SUBSTR(DATECOL,6,2)),SUBSTR(DATECOL,9,2)) AS YYYYMMDD