Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Select || mit NULL-Feldern (https://www.delphipraxis.net/185204-select-%7C%7C-mit-null-feldern.html)

hoika 21. Mai 2015 15:33

Datenbank: Firebird • Version: 2 • Zugriff über: egal

Select || mit NULL-Feldern
 
Hallo,
wie die Überschrift schon agt.

Tabelle Tab1 mit den Felder A und B (Varchar).

Select A || B erzeugt NULL, wenn es der beiden Felder NULL ist.

Wie kann ich das Umgehen.

(Coalesce klappt, will ich aber eigentlich vermeiden).

Danke


Heiko

Neutral General 21. Mai 2015 16:32

AW: Select || mit NULL-Feldern
 
coalesce.

Gibt keine andere Möglichkeit. Sobald du etwas mit NULL verknüpfst wird das Ergebnis NULL.

Dejan Vu 21. Mai 2015 16:33

AW: Select || mit NULL-Feldern
 
Was ist an Coalesce so verwerflich?

himitsu 21. Mai 2015 16:38

AW: Select || mit NULL-Feldern
 
Entweder COALESCE oder Firebird hat vielleicht eine Concat-Funktion, welche NULL ignoriert.


SQL-Code:
SELECT IFF(A IS NULL, '', A) || IFF(B IS NULL, '', B) FROM ...
ohne COALESCE :angle2:

hoika 21. Mai 2015 19:00

AW: Select || mit NULL-Feldern
 
Hallo,
das System läuft stellenweise noch mit Interbase, also nix mit Coalesce und IFF ...
Sind schon dabei, das zu ändern ...


Heiko

DeddyH 21. Mai 2015 19:29

AW: Select || mit NULL-Feldern
 
Kennt Interbase CASE? Damit müsste es auch zu machen sein.
SQL-Code:
SELECT (CASE WHEN A IS NULL THEN '' ELSE A END) || (CASE WHEN B IS NULL THEN '' ELSE B END) FROM...
(oder so ähnlich)

himitsu 21. Mai 2015 23:44

AW: Select || mit NULL-Feldern
 
Kann Interbase denn keine StoredProcs?

Erstellt euch einfach die fehlenden Funktionen und benutzt sie dann. :angle:

mkinzler 22. Mai 2015 05:10

AW: Select || mit NULL-Feldern
 
Oder an eine UDF. Da gibt es sicher was Passendes

Dejan Vu 22. Mai 2015 06:29

AW: Select || mit NULL-Feldern
 
Wieso einfach, wenn's auch umständlich geht.

mkinzler 22. Mai 2015 07:00

AW: Select || mit NULL-Feldern
 
Zitat:

Zitat von mkinzler (Beitrag 1302519)
Oder an eine UDF. Da gibt es sicher was Passendes

Z.B. F_IF in der FreeAdhocUDF oder IIF in der rFunc-UDF-Bibliothek oder schnell Selberschreiben

Dejan Vu 22. Mai 2015 07:08

AW: Select || mit NULL-Feldern
 
Zitat:

Zitat von hoika (Beitrag 1302500)
Hallo,
das System läuft stellenweise noch mit Interbase, also nix mit Coalesce und IFF ...
Sind schon dabei, das zu ändern ...

D.h. Du suchst nach einer Übergangslösung. Du könntest jetzt eine Bibliothek einbinden, die UDF mit der gleichen Syntax bereitstellt, die nach der Umstellung auch ohne UDF möglich ist. Dann kannst Du heute anfangen, anzupassen.

Hier zeigt sich einmal mehr, das man bei bestimmten Systemen von Anfang an auf eine Standardlösung (und ich meine STANDARD-Lösung) setzen sollte. Mir wäre nie in den Sinn gekommen, Interbase in einer Firma einzuführen. Niemals.

hoika 22. Mai 2015 08:21

AW: Select || mit NULL-Feldern
 
Hallo,

< Mir wäre nie in den Sinn gekommen, Interbase in einer Firma einzuführen. Niemals. >

Tja, 1996 gab es aber kein Firebird ...


Case kann Interbase natürlich ( :) ) nicht.


Heiko

mkinzler 22. Mai 2015 08:37

AW: Select || mit NULL-Feldern
 
Neuere Versionen schon

in der rFunc ist die UDF IIF, FireBird hat sie selbe Funktion builtIn

Zitat:

< Mir wäre nie in den Sinn gekommen, Interbase in einer Firma einzuführen. Niemals. >

Tja, 1996 gab es aber kein Firebird ...
Er meint nicht FireBird, sondern MSSQL oder Oracle


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:32 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-2025 by Thomas Breitkreuz