Was ist der String-Verkettungsoperator in Oracle SQL?
Gibt es "interessante" Funktionen, auf die ich achten sollte?
(Dies scheint offensichtlich, aber ich konnte keine vorherige Frage finden, die sie stellte).
Was ist der String-Verkettungsoperator in Oracle SQL?
Gibt es "interessante" Funktionen, auf die ich achten sollte?
(Dies scheint offensichtlich, aber ich konnte keine vorherige Frage finden, die sie stellte).
Antworten:
Es ist
||
zum Beispiel:Das einzige "interessante" Merkmal, an das ich denken kann, ist die
'x' || null
Rückkehr'x'
, nichtnull
wie Sie vielleicht erwarten.quelle
||
in Oracle ist kein logischer Operator, daher wird'x'||null
zurückgegebenx
.AND
,NOT
dann ist dies natürlich||
kein logischer Operator. Aber was hat das mit der'x'||null
Rückkehr zu tunx
?n+null
gibt null zurück, ist also+
ein logischer Operator?Es gibt auch concat, aber es wird nicht viel gewöhnt
quelle
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:
oder
quelle
concat(a,b)
übera||b
?Ausgabe :: Abc def
quelle
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
vonYYYY-MM-DD
wie folgt (dh ohne Datumsformat zu konvertieren):quelle