AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Select *, ((intfieldname = 0) or (intfieldname is null)) as newfieldname
Thema durchsuchen
Ansicht
Themen-Optionen

Select *, ((intfieldname = 0) or (intfieldname is null)) as newfieldname

Ein Thema von RSE · begonnen am 24. Sep 2012 · letzter Beitrag vom 24. Sep 2012
Antwort Antwort
RSE

Registriert seit: 26. Mär 2010
254 Beiträge
 
Delphi XE Enterprise
 
#1

Select *, ((intfieldname = 0) or (intfieldname is null)) as newfieldname

  Alt 24. Sep 2012, 08:37
Datenbank: interbase • Version: 6.1 • Zugriff über: sql
Hallo,

ich möchte ein zusätzliches boolsches Feld selektieren, etwa so:
Code:
SELECT *, ((INTFIELDNAME = 0) OR (INTFIELDNAME IS NULL)) AS NEWFIELDNAME
Geht so etwas? Wie ist die korrekte Syntax? Stringkonkatenation mehrerer Konstanten und Felder und Rückgabe als neues Feld geht ja auch auf diese Weise...
"Seit er seinen neuen Computer hat, löst er alle seine Probleme, die er vorher nicht hatte."
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#2

AW: Select *, ((intfieldname = 0) or (intfieldname is null)) as newfieldname

  Alt 24. Sep 2012, 08:48
Hallo,

ich möchte ein zusätzliches boolsches Feld selektieren, etwa so:
Code:
SELECT *, ((INTFIELDNAME = 0) OR (INTFIELDNAME IS NULL)) AS NEWFIELDNAME
Geht so etwas? Wie ist die korrekte Syntax? Stringkonkatenation mehrerer Konstanten und Felder und Rückgabe als neues Feld geht ja auch auf diese Weise...
Interbase müsste DECODE kennen:
Code:
SELECT *, DECODE(INTFIELDNAME, 0, NewValue,
                               NULL, AnotherNewValue,
                               ElseValues) AS NEWFIELDNAME
   from ...
Gruß, Jo
  Mit Zitat antworten Zitat
RSE

Registriert seit: 26. Mär 2010
254 Beiträge
 
Delphi XE Enterprise
 
#3

AW: Select *, ((intfieldname = 0) or (intfieldname is null)) as newfieldname

  Alt 24. Sep 2012, 09:06
Interbase müsste DECODE kennen
Tut es leider nicht.
"Seit er seinen neuen Computer hat, löst er alle seine Probleme, die er vorher nicht hatte."
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Select *, ((intfieldname = 0) or (intfieldname is null)) as newfieldname

  Alt 24. Sep 2012, 09:15
Geht es mit CASE?
CASE IntFeld WHEN NULL THEN 0 ELSE IntFeld END
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Select *, ((intfieldname = 0) or (intfieldname is null)) as newfieldname

  Alt 24. Sep 2012, 09:21
DECODE(); IIF(); NullIf(); COLAESCE() usw. wurden alle erst in FireBird eingeführt
Möglichweise mit einer UDF-Bibliothek oder man nimmt eine Case..when
Markus Kinzler
  Mit Zitat antworten Zitat
vagtler

Registriert seit: 9. Jul 2010
Ort: Köln
667 Beiträge
 
Delphi 2010 Professional
 
#6

AW: Select *, ((intfieldname = 0) or (intfieldname is null)) as newfieldname

  Alt 24. Sep 2012, 09:22
select case when (intfieldname is null) or (intfieldname = 0) then 0 else 1 end as newfieldname
  Mit Zitat antworten Zitat
RSE

Registriert seit: 26. Mär 2010
254 Beiträge
 
Delphi XE Enterprise
 
#7

AW: Select *, ((intfieldname = 0) or (intfieldname is null)) as newfieldname

  Alt 24. Sep 2012, 09:29
select case when (intfieldname is null) or (intfieldname = 0) then 0 else 1 end as newfieldname
Ich probiere das im IBExpert SQL-Editor aus. Der meckert hier schon am "when" rum: Token unknown.
Geht es mit CASE?
CASE IntFeld WHEN NULL THEN 0 ELSE IntFeld END
Hier der gleiche Fehler beim Feldnamen nach dem case.

Ich hätte nicht gedacht, dass das für SQL eine so schwierige Aufgabe ist. Ich werde die Frage hiermit als beantwortet werten und das anders lösen. Trotzdem vielen Dank an alle Beitragenden.
"Seit er seinen neuen Computer hat, löst er alle seine Probleme, die er vorher nicht hatte."
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#8

AW: Select *, ((intfieldname = 0) or (intfieldname is null)) as newfieldname

  Alt 24. Sep 2012, 12:09
wie wäre es mit einem IB Update. Interbase liegt nun mittlerweile in Version XE3 vor, da hat sich einiges getan. Habe auch irgendwann mal den Schritt getan und bin von IB7 weg zu XE, erleichtert einiges!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Select *, ((intfieldname = 0) or (intfieldname is null)) as newfieldname

  Alt 24. Sep 2012, 12:10
Oder hlt ein Update auf FireBird. Auch hier wurde viel Neues hinzugefügt und Vorhandenes optimiert/fehlerbereinigt.
Markus Kinzler
  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 19:44 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