AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi case und NULL Werte in MSSQL
Thema durchsuchen
Ansicht
Themen-Optionen

case und NULL Werte in MSSQL

Ein Thema von Jelly · begonnen am 22. Sep 2005 · letzter Beitrag vom 22. Sep 2005
Antwort Antwort
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#1

case und NULL Werte in MSSQL

  Alt 22. Sep 2005, 10:08
Datenbank: MSSQL • Version: 2000 • Zugriff über: -
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?
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: case und NULL Werte in MSSQL

  Alt 22. Sep 2005, 10:21
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.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#3

Re: case und NULL Werte in MSSQL

  Alt 22. Sep 2005, 10:48
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:36 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