Ich habe eine Tabelle in PostgreSQL 9.5 erstellt, wie unten gezeigt, und ich habe einige Daten hinzugefügt. Wenn ich jedoch versuche, Daten nach Groß- und Kleinschreibung zu suchen, wie z. B.! ~ *, Werden sogar die Nullwertzeilen entfernt. Wie kann ich eine Abfrage durchführen, die alle Kategorien zurückgibt, die Null und Gemüse, aber keine Früchte sind?PostgreSQL-Abfrage nach String filtert sogar die Werte, bei denen Nullen vorhanden sind.
CREATE TABLE temp
(
category character varying,
item character varying
);
INSERT INTO temp VALUES('Fruits', 'apple');
INSERT INTO temp VALUES('FRUITS', 'applE');
INSERT INTO temp(item) VALUES('Apple');
INSERT INTO temp(item) VALUES('BANANA');
INSERT INTO temp VALUES('Vegetables', 'Cabbage');
Abfrage
Select * from temp where category !~* 'fruits'
Ausgabe
category item
-------- --------
Vegetables Cabbage
Allerdings, wenn ich zu nisten versucht und/oder sich die Abfrage diese Nullen verschwinden. In diesem Fall zum Beispiel: Wählen Sie * aus ( Select * von Temp wo Kategorie ~ * 'Früchte' oder Kategorie null ist!) "T" wo "Kategorie" ~ * 'Gemüse' – codeBarer
Allerdings, wenn ich! sie verschmelzen dann funktioniert es: * Wählen sie aus ' "t" wo coalesce ("Kategorie", ( ') ~ Select * von Temp wo coalesce (Kategorie 'Früchte') ~ *!')'! * 'Gemüse' – codeBarer