Gibt 0 zurück, wenn die Tabelle leer ist, andernfalls 1

8

Wie kann ich in postgreSQL eine Tabelle zurückgeben, die 0 enthält, wenn meine Tabelle leer ist, und eine Tabelle, die 1 enthält, wenn meine Tabelle Zeilen enthält?

Ich muss es in SQL machen, keine andere Sprache verwenden

    
Spawn 09.11.2010, 21:18
quelle

7 Antworten

13

Könnte ein Hack sein, aber es funktioniert.

%Vor%
  • Die 1, die in der Unterabfrage ausgewählt wird, könnte was auch immer sein, es ist nur ein Platzhalter.
  • LIMIT 1 sollte die Unterabfrage unabhängig von der Tabellengröße sehr schnell machen.

Bearbeiten: Rewrote ein bisschen. Die vorherige Verwendung von LIMIT war falsch (half nicht bei großen Tabellen, wie ich es beabsichtigte).

    
plundra 09.11.2010 21:22
quelle
13

Verwenden:

%Vor%

EDIT : LIMIT 1 hinzugefügt, um die Abfrage zu beschleunigen.

    
GendoIkari 09.11.2010 21:22
quelle
2

Versuchen Sie:

%Vor%     
Mark Bannister 10.11.2010 12:13
quelle
0

Vielleicht suchen Sie das?

%Vor%     
Randy 09.11.2010 21:22
quelle
0

SELECT, COUNT und LIMIT sollten es tun.

%Vor%

Bearbeiten: Dies funktioniert nicht in Postgres (mindestens 8.x). Bitte beachten Sie die Kommentare und hier: Ссылка

Happy SQL'ing.

    
user166390 09.11.2010 21:23
quelle
0

Sie können diese Anforderung in eine gespeicherte Prozedur mit dem Tabellennamen als Parameter einfügen:

%Vor%

Dann führe diese Funktion wie folgt aus:

%Vor%

Sie können es also mit einem beliebigen Namen Ihrer Tabelle aufrufen

    
Julien Feniou 21.12.2017 14:11
quelle
-5

Ich glaube nicht, dass das nur mit SQL möglich ist. Warum kannst du keine andere Sprache benutzen?

    
Tmas 09.11.2010 21:21
quelle

Tags und Links