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-Key: 4022073534

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

Printed on: April 25, 2024 at 09:04 o'clock

Member: wiesi200
Solution wiesi200 Sep 22, 2022 at 14:21:15 (UTC)
Goto Top
Hallo,

du wirst das 2 Select miteinander Verschachteln müssen.

Also ein "subselect".
Member: it-frosch
it-frosch Sep 22, 2022 updated at 14:31:15 (UTC)
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
Member: ukulele-7
ukulele-7 Sep 22, 2022 at 14:39:28 (UTC)
Goto Top
Richtig, count() liefert auch 0 wenn keine Datensätze existieren weil die Anzahl ja 0 ist, count() kann also nie NULL liefern.