2017-09-15 1 views
0

Gibt es eine Möglichkeit, eine leere Zeichenfolge für ein Feld in SQL zurückzugeben, selbst wenn das Feld Daten enthält?Gibt eine leere Zeichenfolge für ein Feld zurück SQL

SELECT NAME, AGE, DOB, GENDER, CITY 
FROM TABLE 

ich DOB wollen, kehren Sie immer leer ''

+0

wir die Zeichenkette in der SELECT-Liste setzen und Gib ihm einen Spaltenalias, z 'WÄHLE NAME, ALTER, '' ALS DOB, GESCHLECHT, STADT AUS TABELLE '. (Wenn wir den Wert der DOB-Spalte nicht zurückgeben müssen, verweisen wir nicht auf die Spalte in der SELECT-Liste.) Um ein Leerzeichen zurückzugeben, müssen wir ein Leerzeichen zurückgeben '' ''; Oracle interpretiert ein String-Literal mit der Länge Null als einen Nullwert. – spencer7593

Antwort

2

In Oracle, eine empty VARCHAR2 is equivalent to a NULL value.

So können Sie einfach tun:

SELECT NAME, 
     AGE, 
     NULL AS DOB, 
     GENDER, 
     CITY 
FROM TABLE 

Wenn Sie es einen bestimmten Datentyp geben möchten, dann können Sie CAST verwenden:

SELECT NAME, 
     AGE, 
     CAST(NULL AS DATE) AS DOB, 
     GENDER, 
     CITY 
FROM TABLE 
+0

Ich versuche, einen Spaltennamen hinzufügen, aber ich bekomme einen Fehler für das Nullfeld. Gibt es eine Möglichkeit, dies zu tun? –

+0

@Agent_Sully, versuchen Sie die Fehlermeldung zu lesen. Hinweis: Wir können Ihren Computerbildschirm nicht sehen. –

0

Sie NVL2 verwenden:

SELECT NVL2(dob, '', NULL) --rest of cols 
FROM TABLE; 

Bitte beachten Sie, dass '' als NULL gleich ist. Sie haben also:

SELECT '' AS DOB -- rest of cols 
FROM TABLE; 
+0

'NVL2 (dob, '', NULL)' ist das gleiche wie 'NVL2 (dob, NULL, NULL)', was immer den Ausgang 'NULL' ergibt - also ist' NVL2' nur eine übermäßige Komplikation. – MT0

+0

@ MT0 Yup, deshalb gibt es einen einfachen zweiten Teil. Ich wollte nur zeigen, wie man leicht mit 'NULL' vergleicht, ohne' CASE' zu verwenden. – lad2025

1

try this:

SELECT NAME, AGE, ' ' as DOB, GENDER, CITY 
FROM TABLE 
+0

Eine Zeichenfolge, die das Leerzeichen enthält, ist nicht mit einer leeren Zeichenfolge identisch. – MT0

+0

Zustimmen ... aber die ursprüngliche Anfrage war, eine leere ... – BWS

Verwandte Themen