Count(*) zählt auch alles ab und bei vielen Sätzen, ohne entsprechenden (Encoded) Vector Index, kann das schon dauern!
Wenn Du nur wissen willst, ob ein Satz vorhanden ist oder nicht, solltest Du mit FETCH FIRST ROW ONLY oder LIMIT (ist im Übrigen SQL Standard!) oder mit EXISTS (wie Baldur erklärt hat) oder mit Values() arbeiten:
Code:
Select 1
from D_FWABUS
Where MANDKENN like 'EWI%'
Fetch First Row Only;
Und wenn Du unbedingt ein "IF" haben willst, kannst Du die Abfrage auch so machen:
Code:
Values(Case When (SELECT 1 FROM D_FWABUS WHERE MANDKENN LIKE 'EW1%' Fetch First Row Only) = 1
Then 1
else 0 End);
Es ist allerdings zu beachten, dass SQL Server keine Db2 for i ist und die Datenbanken unterschiedlich optimieren. Der Query Optimizer auf der i kann durch die Kommunikation mit dem Statistics Manager und weil die Statistiken auch immer aktuell sind, auch die Summe relativ fix ermitteln.
... und dann solltest Du Tests nicht (mehr) mit STRSQL, sondern mit ACS machen!
Birgitta
Bookmarks