Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Firebird abprüfen auf 0/NULL (https://www.delphipraxis.net/63669-firebird-abpruefen-auf-0-null.html)

Gruber_Hans_12345 21. Feb 2006 14:33

Datenbank: Firebird • Version: 1.5 • Zugriff über: IBConsole

Firebird abprüfen auf 0/NULL
 
Was ist eigentlich besser für diese Abprüfung
SQL-Code:
SELECT * FROM B WHERE (B.ABGESCHLOSSEN = 0) OR (B.ABGESCHLOSSEN IS NULL)
SQL-Code:
SELECT * FROM B WHERE COALESCE(B.ABGESCHLOSSEN, 0) = 0
oder mit nem IIF oder mit einem CASE ?
ich habs in meinem Source mal so und mal so, und möchte es jetzt mal auf gleichen Stand bringen, nur was gibts für vor und nachteile ?

Frank Borland 21. Feb 2006 14:36

Re: Firebird abprüfen auf 0/NULL
 
hier ist der schnellste Code der Beste :-D

Überprüfe einfach, ob der passende Index verwendet wird.


Gruß

Malte

marabu 21. Feb 2006 15:01

Re: Firebird abprüfen auf 0/NULL
 
Hallo,

noch etwas zum Datenmodell. Oft wird keine tri-state logic gebraucht. Für ein Datenfeld mit dem Namen ABGESCHLOSSEN könnte ich mir einen constraint default 0 sehr gut vorstellen.

Grüße vom marabu

Gruber_Hans_12345 21. Feb 2006 18:05

Re: Firebird abprüfen auf 0/NULL
 
Hmmm, Index hab ich keinen auf das Feld (Hab doch mal irgendwo gelesen, das ein Index auf ein Feld nix bringt, wo nur wenig unterschiedliche Werte drinnen stehen)

Glaub ich werd das mit dem constraint verwenden, gefällt mir auch ganz gut

Frank Borland 21. Feb 2006 18:40

Re: Firebird abprüfen auf 0/NULL
 
Zitat:

Zitat von Gruber_Hans_12345
Hmmm, Index hab ich keinen auf das Feld (Hab doch mal irgendwo gelesen, das ein Index auf ein Feld nix bringt, wo nur wenig unterschiedliche Werte drinnen stehen)

Glaub ich werd das mit dem constraint verwenden, gefällt mir auch ganz gut

Wenn ich aus 8 Millionen erledigten 5 Unerledigte rauspicken will? Aber Hallo !-)

Und wenn ich die 7999995 anderen will, dann klammere ich den Index ggf. mit einem separaten Indexplan aus.

Gruß


Malte


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz