it-frosch
Goto Top

Select case count() will nicht

Hallo Kollegen,

ich stehe heute etwas im Wald. face-smile

Ich möchte aus einer Tabelle die Anzahl der Datensätze mit Feld='Wert' ermitteln.
Wenn der Wert nicht in dem Feld vorkommt soll mir eine 0 zurückgegeben werden ansonsten die Anzahl.

Select case when count(*) is null then 0 else count(*) end from tabelle where feld='Wert';  

Das will SQL nicht. Ok. Ich habe aber irgendwie auch keinen Ansatz im Moment.

Wer hat hier eine Anregung?

Grüße vom it-frosch

Content-ID: 4022073534

Url: https://administrator.de/contentid/4022073534

Ausgedruckt am: 21.11.2024 um 11:11 Uhr

wiesi200
Lösung wiesi200 22.09.2022 um 16:21:15 Uhr
Goto Top
Hallo,

du wirst das 2 Select miteinander Verschachteln müssen.

Also ein "subselect".
it-frosch
it-frosch 22.09.2022 aktualisiert um 16:31:15 Uhr
Goto Top
Zitat von @wiesi200:

Hallo,

du wirst das 2 Select miteinander Verschachteln müssen.

Also ein "subselect".

Danke für das Wegräumen der Bäume. face-smile

So geht es jetzt.
Select case when 
 (select count(*) from tabelle where feld='Wert')   
is null then 0 else 
 (select count(*) from tabelle where feld='Wert')   
end

Obwohl das eigentlich alles Quatsch ist, da ich bei keinem Vorkommen ja 0 zurückbekomme.
Ich glaube ich hatte hier einen alten Codestand und meine Variable hatte einfach den zu kleinen typ (smallint anstatt int).

grüße vom it-frosch
ukulele-7
ukulele-7 22.09.2022 um 16:39:28 Uhr
Goto Top
Richtig, count() liefert auch 0 wenn keine Datensätze existieren weil die Anzahl ja 0 ist, count() kann also nie NULL liefern.