2017-02-06 1 views
0

Wie der Typ nach dem Dekodierungsausdruck angezeigt wird. Ich, habe folgende Abfrage, und ich brauche Spaltentyp des Ausdrucks dekodierenSo finden Sie den Spaltentyp nach dem Dekodierungsausdruck

Aktuelle Frage wissen:

select decode(column1,column2,2,'3') result from tablename 

Gewünschte Abfrage:

select decode(column1,column2,2,'3') result,calculationoftype.... columntype from tablename 
+0

Ändern ''3'' zu'' Z'' und sehen, was passiert, wenn 'Spalte1' <> 'Spalte2' ... –

Antwort

2

Ich glaube, Sie sind verwirrt über etwas. decode() ist ein Ausdruck und gibt nur einen Typ zurück. In Ihrem Fall ist dieser Typ number.

Als documentation erläutert:

Oracle konvertiert automatisch den Rückgabewert auf den gleichen Datentyp wie das erste Ergebnis. Wenn das erste Ergebnis den Datentyp CHAR hat oder wenn das erste Ergebnis null ist, konvertiert Oracle den Rückgabewert in den -Datentyp VARCHAR2.

In Ihrem Fall ist das erste Ergebnis eine Zahl, daher ist der Rückgabetyp eine Zahl.

+0

aber Abfrage wie folgt funktioniert, und es ist interessant für mich, was Art von Ergebnis neu sein wird Spalte –

+0

Entschuldigung, ich habe verstanden, was du meinst –

+0

Und wie kann ich den Typ der Spalte sehen? Gibt es irgendeine Funktion? –

Verwandte Themen