Ich habe diese Beispiel Tempentabelle. Ich benutzte die COALESCE im SQL-Server. Ich habe kein Zugriffsrecht, um Tabellen in Oracle zu erstellen. Gibt es in Oracle eine Case-Anweisung, die in SQL Server als COALESCE fungiert?COALESCE in SQL zu Case-Anweisung in Oracle
CREATE TABLE #TEMP
(
ID INT,
FIELD1 VARCHAR (5),
FIELD2 VARCHAR (5),
FIELD3 VARCHAR (5)
)
INSERT INTO #TEMP VALUES('555','CVS','E','CIA')
SELECT
ID,
COALESCE(FIELD1 + '_' + FIELD2 + '_' + FIELD3, FIELD2 + '_' + FIELD1) AS STORE
FROM #TEMP
Grundsätzlich möchte ich die COALESCE von oben meine Abfrage Case-Anweisung in Oracle ersetzen.
edit: Ich habe diese Field1 ||'_' ||Field2||'_'||Field3 AS Store
in Oracle verwendet, aber das Ergebnis gibt mir den zusätzlichen Unterstrich _
von Field3, die ich den Unterstrich nicht sehen möchte.
Oracle coalesce unterstützt - aber es erfordert ** zwei ** Parameter nicht nur einer (und ich glaube, dass dies auch in SQL Server gilt. Nur einen Parameter zu übergeben ist nicht wirklich sinnvoll). Es verwendet jedoch den SQL-Standardoperator '||' zum Verketten von Strings. '+' ist das Hinzufügen von Zahlen –
Ich habe die Verkettung verwendet: Feld1 || '_' || Feld2 || '_' || Feld3 AS Speicher, aber es gibt mir einen zusätzlichen Unterstrich (_), wenn Feld3 keinen Wert hat. Ich möchte die (_) – joe
nicht sehen Wussten Sie wirklich, dass Felder 2 und 1 umgekehrt werden, wenn Feld3 null ist? Oder ist das ein Tippfehler? – kfinity