sqlite wählen Sie, wo Sie...und gegen Fall, wenn...

Ich bin neu in sqlite und eine gefüllte Datenbank, wo ich brauche, um zu bestimmen, wenn jede der digitalen Organismen in der Datenbank haben, ein Schwellenwert von fitness (fitness - >=2) und sind am Leben (Leben=1). Ich muss auch ausschließen, das indivID (der Primary Key) des Organismus, für wen ich bin auf der Suche nach einem fit-mate (indivID INTEGER PRIMARY KEY).

Unten habe ich versucht die erste Zeile code, aber es warf ein SQL-Fehler:

[SQLITE_ERROR] SQL-Fehler oder fehlende Datenbank (in der Nähe von "FALL": syntax
Fehler).

Aber ich weiß, der Fehler ist in der SQL-Anweisung, weil die anderen Funktionen sind erfolgreich auf die Datenbank zugreifen.

SELECT indivID FROM population CASE fitness >=2 WHEN live = 1 AND indivID!=[specific individual] ELSE NULL END

Ich habe versucht, die nächste Zeile von code, der funktioniert aber nicht richtig ausschließen, die indivID der spezifischen einzelnen:

SELECT [some column names] FROM [a database] WHERE fitness>=2 AND live=1 AND indivID!=[specific individual]

Ich habe drei Fragen:

1) Wo sind meine Fehler in der obigen Aussagen

2) Was ist der Unterschied zwischen der Verwendung von "Fall...Wann" und "wo...und die" Aussagen

3) Es ist möglich und sogar wahrscheinlich ist auf diese Abfragen, es kann nicht ein "live=1" Person mit hoch genug fitness (2) die Qualifikation für die select-Anweisung, so wird das Ergebnis der beiden Abfragen mit keine lebensfähigen Individuum (wenn richtig geschrieben) dann null sein?

Dank im Voraus für Eure Hilfe!

Ihre zweite Abfrage scheint in Ordnung. Könnten Sie bitte erweitern Sie die 'nicht richtig ausschließen, die indivID der spezifischen individuellen," Teil?
Danke Jungs! @AndriyM In Fällen, In denen ich die Datenbank zurücksetzen, so dass jeder hat eine fitness von null, und ich Schub einen individuellen fitness 2, so dass das system Abfragen für die fit-mate (ein anderes Individuum mit der fitness - >=2), es meldet zurück, dass es, wenn ich weiß, alle anderen Personen sind bei null.
Wenn es nur eine Zeile matching die Bedingung aus, und geben Sie seine ID auszuschließen und trotzdem die Abfrage noch gibt, dann ja, ich kann sehen, wie man verwirrt werden könnte. Aber sind Sie sicher, dass Sie nicht einen Fehler machen? Vielleicht ist das ausgeschlossen-ID falsch war (und damit der server hat nicht alles ausschließen und kehrte die nur übereinstimmende Zeilen)? Hier ist ein einfaches Beispiel matching, ich denke, die situation, die Sie beschrieben, und ich sehe kein Problem dort (in der Abfrage keine Zeilen zurückgegeben, wie erwartet). Könnten Sie in ähnlicher Weise richten Sie eine test-Fall illustriert das problem?

InformationsquelleAutor gromiczek | 2013-05-31

Schreibe einen Kommentar