PDA

Vollständige Version anzeigen : "If" in SQL möglich?


Max235
24.03.2004, 10:39
Hallo allerseits,

kleine Frage:
Kann ich in SQL-Code auch mit IF arbeiten?

Konkretes Problem:
tbl_anbieter.Vorname+" "+tbl_anbieter.Name AS Dozent

Das möchte ich auslesen. Das Problem tritt auf, wenn eine Person nur mit Name und ohne Vornamen eingetragen ist. Dann wird nämlich gar nix angezeigt.

Meine Idee:
per IF nur dann den Vornamen dazuzunehmen, wenn einer da ist.

Geht das und wenn ja wie?

Besten Dank,

Max

strausto
24.03.2004, 10:49
Versuche mal

NZ(tbl_anbieter.Vorname) &" " & tbl_anbieter.Name AS Dozent

Max235
24.03.2004, 10:52
Vielen Dank, funktioniert!

Wofür steht denn das NZ?

Gruss, max235

heini
24.03.2004, 10:53
Hi!
Ergänzend, als reines SQL:

Select Vorname+' '+Name AS Dozent
From Abieter


HTH

Lucasss
24.03.2004, 11:06
generell ja
IF funktioniert(wenn in entwurfsmodus)

KHS
24.03.2004, 11:08
NZ(tbl_anbieter.Vorname) &" " & tbl_anbieter.Name AS Dozent
Auf die Art steht aber an erster Stelle ein Leerzeichen, wenn Vorname leer ist.
Ich würd's so machen:
Select..., Trim(([Vorname]+" ") & ([Name])) AS Dozent,...

strausto
24.03.2004, 11:47
@ KHS

Daran habe ich beim Mittagessen auch gedacht, aber ein

LTrim
sollte genügen!

Arne Dieckmann
24.03.2004, 11:54
Lt. Donkarl (FAQ 2.12) und auch nach meinem Verständnis kann man sich die Trim-Anweisung ganz sparen:

([Vorname]+" ") & [Nachname]

heini
24.03.2004, 12:04
Original geschrieben von KHS
Auf die Art steht aber an erster Stelle ein Leerzeichen, wenn Vorname leer ist.


Na, na, na!
Wer wird denn schlampige Adressdaten haben
;) :biggrinl:

KHS
24.03.2004, 12:09
@Arne:
Von meinem Verständnis her eigentlich auch, aber bei mir steht dann komischerweise trotzdem am Ende ein Leerzeichen, wenn Nachname leer (Null) ist!?

@heini:
Eben drum ;)

@strausto:
Ich bin ehrlich gesagt zu faul, mich zwischen LTrim und RTrim zu entscheiden.
Mit Trim 'erschlag' ich beide Fälle.

Max235
24.03.2004, 20:23
Besten Dank für die vielen Hinweise,
hab eben erst gesehen, was hier noch alles passiert ist.

Hab das mit dem NZ, denn ein Leerzeichen stört nicht, eher im gegenteil, hab mir noch ein zusätzliches leerzeichen für einen eventuellen vornamen dazugebastelt, da das im bericht eh immer ziemlich knapp mit dem platz ist (also die einträge sehr nah am rahmen erscheinen.)

nochmals vielen dank ringsum und bis dann,

max235

StehtimSchilf
25.03.2004, 01:53
Hi Max235,

Problem hat sich ja erledigt, aber um Dein Frage "konkret" ;) zu beantworten, ja das geht (wenn glaube ich auch nur im Access-SQL):

SELECT A, B, IIF(A>B,'A ist grösser B','A ist kleiner-gleich B') AS C FROM Tab_Test;

Im Entwurfsmodus der Abfrage schreibst Du einfach:
C : Wenn(A>B;'A ist grösserB';'A ist kleiner-gleich B')

Access wandelt das Statement automatisch richtig um...

Gruz
SiS