2016-03-27 5 views
0

Ich bin neu in der Datenbank.Oracle: Kann ich * oder eine andere Option in der WHERE-Klausel angeben, um den Wert auszuwählen, den sie hat?

Ich erstelle dynamisch Oracle-Abfragen in meinem Code. Wenn die Spalten Wert haben, habe ich kein Problem. Wenn Spalten "Null" -Werte haben, dann kommt das Problem.

Zum Beispiel, wenn ich eine Spalte mit NULL-Werten in Oracle wählen habe

select * 
from <table> 
where "column_name" is NULL; 

aber ich möchte nicht wissen, ist NULL verwenden, weil ich Anfragen dynamisch und das Format der Abfrage zu erzeugen ist

select * 
from <table> 
where "column_name" = NULL; 

aber das funktioniert nicht. Kann ich anstelle von NULL etwas schreiben, das automatisch eine Spalte mit der NULL-Option oder etwas wie "*" auswählt, um einen beliebigen Wert in dieser Spalte auszuwählen?

+0

Vielleicht sollten Sie Ihre Spalte erklären 'nicht NULL' und es einen Standardwert geben. –

+0

Da Sie dynamisch generieren, warum können Sie die 'WHERE'-Klausel insgesamt entfernen, wenn Sie keinen Filter benötigen –

Antwort

1

Sie können es tun NVL mit:

select * from <table> where NVL("column_name",-99) = -99; 
+0

was ist, wenn die 'Spalte' ist Varchar-Datentyp. Auch ich denke, er fragt das andere Ding (wegen der Wörter "dynamisch", "Spalte (n)"). –

+0

Was ist, wenn die Spalte ein Varchar ist? Was wäre das Problem? @sql_dummy – sagi

+0

die Attribute sollten den gleichen Datentyp haben, oder comptible für die Konvertierung Ich denke, –