Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi case und NULL Werte in MSSQL (https://www.delphipraxis.net/53779-case-und-null-werte-mssql.html)

Jelly 22. Sep 2005 11:08

Datenbank: MSSQL • Version: 2000 • Zugriff über: -

case und NULL Werte in MSSQL
 
Ich habe heute morgen ein seltsames Verhalten bei meinem SQL Server festgestellt. Hier mal die Query:
SQL-Code:
select Process,
  case Process
      when null then 0
      else 1
  end as Anzahl,
from za
Also erwarten tu ich da eigentlich als Anzahl 0, wenn in der Spalte Process NULL steht, oder 1, falls dort nicht NULL steht.
Nur, als Ergebnis erhalte ich IMMER 1, unabhängig vom Wert Process.

Kann es sein dass innerhalb einer Case Anweisung das mit dem NULL-Vergleich fehlschägt?

shmia 22. Sep 2005 11:21

Re: case und NULL Werte in MSSQL
 
Kennst du schon die Funktionen COALESCE () und ISNULL() ?
Damit liese sich CASE evtl. ersetzen.
Oder du Wechselt zur komplexen Case-Funktion:
SQL-Code:
case
   when Process IS NULL then 0 
   else 1 
end as Anzahl
Das sieht fast gleich aus wie die einfache Case-Funktion, die du benutzt hast.

Jelly 22. Sep 2005 11:48

Re: case und NULL Werte in MSSQL
 
Zitat:

Zitat von shmia
Kennst du schon die Funktionen COALESCE () und ISNULL() ?

Ja die kannte ich. Nur hat mich diese komische Verhalten beim SQL Server in der Case Anweisung gewundert. Da suchte ich Aufklärung.

Oder du Wechselt zur komplexen Case-Funktion:
SQL-Code:
case
   when Process IS NULL then 0 
   else 1 
end as Anzahl
Die Anweisung klappt einwandfrei...

Trotzdem seltsam.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:53 Uhr.

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