2017-10-01 2 views
1

Ich möchte eine "Like-Abfrage" in Sqlplus ausführen, aber die Abfrage gibt die erwarteten Ergebnisse nicht zurück. Hier ist die Abfrage.Oracle LIKE Bedingung, die leere Ergebnisse zurückgibt

select * 
from field 
where id like 'D.2._'; 

ich die Ergebnisse erwarten die id D.2.1 umfassen, D.2.2, D.2.3 usw. (aber nicht D.2.11).

Was fehlt mir? Ich brauche diese Abfrage in Sqlplus und dem SQL-Entwickler arbeiten.

+0

Ich bin das leere Ergebnis. –

Antwort

5

Wahrscheinlich haben Sie Räume in Spalte:

select * 
from field 
where TRIM(id) like 'D.2._'; 

Ich schlage vor, zu verändern Schema und verwenden VARCHAR2(10) Datentyp statt CHAR(10).

select * 
from field 
where id like 'D.2._'; 

DBFiddle Demo

+0

danke, es hat funktioniert, aber die Datensätze haben keine Leerzeichen in der Spalte 'ID'. Kannst du etwas mehr erklären? –

+0

@KamalAshrafGill Bitte geben Sie den Spalten-Datentyp ein – lad2025

+0

Der Datentyp der Spalte 'id' ist char (10). –

0

Versuchen:

select * 
from field 
where id like 'D.2.%' and id <> 'D.2.11'; 
Verwandte Themen