![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Ich will in einer Abfrage mehrere Strings aus mehreren Spalten einer Tabelle verknüpfen.
Ist ja kein Problem, solange jedes Feld auch wirklich einen String (=NOT NULL) enthält. Ist das nicht der Fall, erhalte ich als Ausgabe NULL. Jetzt würde ich gerne jedes Feld welches NULL enthält vorher überprüfen/ersetzen bevor es zusammengebaut wird. Nur ich kommt auf keinen grünen Zweig. In Access kann man das ganze mit der Funktion IIF erledigen (gibt es am SQL Server nicht). Aber SQL Server gibt es dafür die Funktion Replace - jedoch funktioniert das auch nicht - z.B. REPLACE(Feld, '', 'hier war mal NULL') bzw. REPLACE(Feld, NULL, 'hier war mal NULL') - beides Funkt nicht. Jetzt wollte ich mir 2 Teilabfragen nehmen und diese mit "UNION" verknüpfen. In der 1. Teilabfrage hab ich alle die NULL sind - da schreib ich einfach was anderes hin. In der 2. Teilabfrage habe ich den Rest. Das funktioniert (jedoch mit Fehlermeldung vom SQL Server). Aber ich bekomme zumindest das richtige Ergebnis. Das Problem was ich aber habe - ich kann diese View nicht speichern - bzw. wenn ich sie speichere dann ersetzt er mir meine ganze Abfrage mit REPLACE(Feld, '', 'hier war mal NULL') --> und das bringt ja nix. Naja, ich bin schon etwas "genervt" da ich mit meinem Latein am Ende bin. Aber vielleicht hat ja jemand von euch eine Idee, wie ich mein Ergebnis erhalten könnte. |
![]() |
![]() |
![]() |
#2 |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() korrektur meinerseits:
Das mit UNION funktioniert doch - ist jedoch nicht wirklcih elegant. Es muss doch eine Möglichkeit geben, den NULL-Wert in einer Tabelle durch etwas anderes zu ersetzten (durch einen String eine Zahl - egal was auch immer) |
![]() |
![]() |
![]() |
#3 |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() und wieder ein Thread den die Welt nicht braucht (oder doch?
![]() Hab jetzt endlich eine Antwort mit Google gefunden - das Pendant zu IIF in Access schaut folgendermaßen aus: CASE WHEN bool-expression THEN whatever ELSE whatever END In einer Abfrage dann so: SELECT CASE WHEN Berufstitel IS NULL THEN 'ersetzt' ELSE Berufstitel END FROM dbo.Stammdaten |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|