Sie sind nicht angemeldet.

NullAhnung

Erfahrener Schreiberling

  • »NullAhnung« ist weiblich
  • »NullAhnung« ist der Autor dieses Themas

Beiträge: 332

Registrierungsdatum: 28.04.2003

1

21.10.2003, 19:41

Sql

Kann mir wer bei Aufgabe 2a helfen? Wie unterteil ich denn Vor-und Nachnamen?

KreiS

Senior Schreiberling

  • »KreiS« ist männlich

Beiträge: 701

Registrierungsdatum: 17.12.2001

Wohnort: Hannover

Beruf: moep

2

21.10.2003, 19:59

ich habs über den abstand der ersten und zweiten leerzeichen gemacht.
kaneda spring <-> ks <-> KreiS
"surrender is an option ...time to change everything" (ks '04)

Dakota-Indianer(Weisheit),"Wenn Du entdeckst, dass Du ein totes Pferd reitest, steig ab"

Informatik Minister

Senior Schreiberling

  • »Informatik Minister« ist männlich

Beiträge: 1 234

Registrierungsdatum: 11.12.2001

3

21.10.2003, 22:29

Man kann es so machen, aber das ist alles eher "Pfusch", da ein Nachname, der aus drei Teilen besteht, schon wieder unvollständig ausgegeben würde.

Da bestimmt auch Nachnamen mit einzelnen Buchstaben existieren (z.B. y), kann man nicht eindeutig zwischen Vor- und Nachnamen unterscheiden, auch wenn man die Initialien am Ende "wegmachen" könnte.
Somit kann man die Aufgabe auch (meiner Meinung nach) nicht vollständig korrekt lösen.
"Fliegenpilze! Löwen!! Das Leben ist gefährlich." -- www.katzundgoldt.de

KreiS

Senior Schreiberling

  • »KreiS« ist männlich

Beiträge: 701

Registrierungsdatum: 17.12.2001

Wohnort: Hannover

Beruf: moep

4

21.10.2003, 22:38

normaler weise gibt es eine spalte für nachnamen und eine für vornamen.

von daher :P
kaneda spring <-> ks <-> KreiS
"surrender is an option ...time to change everything" (ks '04)

Dakota-Indianer(Weisheit),"Wenn Du entdeckst, dass Du ein totes Pferd reitest, steig ab"

migu

free rider

  • »migu« ist männlich

Beiträge: 2 643

Registrierungsdatum: 11.12.2001

Wohnort: Hannover

Beruf: Developer

5

21.10.2003, 22:46

Eben drum! Also vergesst die Aufgabe einfach! ;)
tar: Anlegen eines leeren Archivs wird feige verweigert.

Catherine

Trainee

  • »Catherine« ist weiblich

Beiträge: 61

Registrierungsdatum: 06.10.2003

6

22.10.2003, 17:18

mit Substr und Instr Funktion, also

select substr(pres_name, 1, instr(pres_name, ' ')) from President; ;)
Follow your heart, not brain!

dfex

Junior Schreiberling

  • »dfex« ist männlich

Beiträge: 248

Registrierungsdatum: 11.12.2001

7

22.10.2003, 17:44

und was ist mit "van buren m" ??
dann heisst der arme kerl ja nur noch "van" ;)

Catherine

Trainee

  • »Catherine« ist weiblich

Beiträge: 61

Registrierungsdatum: 06.10.2003

8

22.10.2003, 18:14

Ja ich habe gefragt, der Mitarbeiter sagte das ein Ausnahme ist, deswegen kein Problem. :))
Follow your heart, not brain!

cowhen

Muuuh!

  • »cowhen« ist männlich

Beiträge: 1 374

Registrierungsdatum: 13.12.2001

9

22.10.2003, 18:20

Zitat

Original von Catherine
Ja ich habe gefragt, der Mitarbeiter sagte das ein Ausnahme ist, deswegen kein Problem. :))
weee.... dann hab ich das viel zu kompliziert gemacht 8o
plenty of time to relax when you are dead

dfex

Junior Schreiberling

  • »dfex« ist männlich

Beiträge: 248

Registrierungsdatum: 11.12.2001

10

22.10.2003, 18:38

Zitat

Original von cowhen
weee.... dann hab ich das viel zu kompliziert gemacht 8o


Hast du es denn "allgemein" hinbekommen? Würde dein Query auch ein "Van de Beugen H G M" schaffen? (Nur mal so rein interessehalber.)

Informatik Minister

Senior Schreiberling

  • »Informatik Minister« ist männlich

Beiträge: 1 234

Registrierungsdatum: 11.12.2001

11

22.10.2003, 19:04

Zitat

Original von Catherine
Ja ich habe gefragt, der Mitarbeiter sagte das ein Ausnahme ist, deswegen kein Problem. :))

Auf meine Frage hin bekam ich gesagt:
"Versucht mal mit einem LIKE Operation, dann gehts.".

Aber geht ja nicht. Auch egal.
"Fliegenpilze! Löwen!! Das Leben ist gefährlich." -- www.katzundgoldt.de

cowhen

Muuuh!

  • »cowhen« ist männlich

Beiträge: 1 374

Registrierungsdatum: 13.12.2001

12

22.10.2003, 19:12

Zitat

Original von dfex
Hast du es denn "allgemein" hinbekommen? Würde dein Query auch ein "Van de Beugen H G M" schaffen? (Nur mal so rein interessehalber.)


Nee, so kompliziert nur auch wieder nicht ;)
So Sachen wie
O Brian H G oder
Mc Murphy H

würde damit wohl auch gehen.
Um den von dir genannten Fall zu behandeln, würde mir eine Schleife einfallen, mit dem man von hinten alle Einzelbuchstaben wegschneidet. Aber das geht ja nicht in einer Anfrage. Habs jedenfalls nich hinbekommen :rolleyes:
plenty of time to relax when you are dead

KreiS

Senior Schreiberling

  • »KreiS« ist männlich

Beiträge: 701

Registrierungsdatum: 17.12.2001

Wohnort: Hannover

Beruf: moep

13

22.10.2003, 19:40

hehe, das Problem ist schlicht und einfach das Vor und Nachnamen in einem String gespeichert sind und nichtmal eine komma trennung gibt.

Somit kann man so einen Namen basteln wo sich jeder algo verschluckt :P
kaneda spring <-> ks <-> KreiS
"surrender is an option ...time to change everything" (ks '04)

Dakota-Indianer(Weisheit),"Wenn Du entdeckst, dass Du ein totes Pferd reitest, steig ab"

AnyKey

Erfahrener Schreiberling

Beiträge: 451

Registrierungsdatum: 11.12.2001

Wohnort: H-Town

Beruf: Student

14

22.10.2003, 20:05

Mein Senf:
Also wenn es einen Sonderfall gibt, kann man ihn ja im Query berücksichtigen.
Sollten aber mehrere solche Fälle auftauchen, sollte man wohl die Entwurfsentscheidung nocheinmal über denken und eine neue Spalte einführen.

ich habe den Herrn "Van Buren M" nun mal so bedacht:
REM Aufgabe 2 (Stringfunktionen)
REM a) Nur die Nachnamen der 42 Praesidenten:
REM Herr 'Van Buren M' hat eine Sonderstellung, da er 2 Nachnamen hat. Dies ist
keine optimale Lösung, scheint aber erst einmal auszureichen?
SELECT CASE pres_name WHEN 'Van Buren M' THEN 'Van Buren'
ELSE SUBSTR(pres_name,1 , INSTR(pres_name, ' ')) END "Nur Nachname"
FROM president;

"Der Mensch braucht Schubladen." -- Any Key

Cee

Trainee

  • »Cee« ist männlich

Beiträge: 90

Registrierungsdatum: 17.01.2002

Wohnort: H. an der L.

Beruf: wenn ich das jetzt noch wüsste....

15

22.10.2003, 20:06

HMMM, schade das sich die mitarbeiter nicht mal einig sind.
Mir wurde gesagt es gäbe eine Lösung in einer Zeile, bei welcher auch der gute van buren korrekt bearbeitet wird, und das ich auf den auch besonders achten sollte.
Ausser ner konkreten ausnahme für den einen (bekannten) namen ist mir da nix eingefallen :( und das kann ja echt nicht sinn der sache sein.
Es gibt keine Probleme, nur Herausforderungen!
-
www.shadowirc.org
-

Cee

Trainee

  • »Cee« ist männlich

Beiträge: 90

Registrierungsdatum: 17.01.2002

Wohnort: H. an der L.

Beruf: wenn ich das jetzt noch wüsste....

16

22.10.2003, 20:25

hmm kann man in CASE auch eine berechnete Funktion verwenden?
dann habbich ne Lösung, die zumindest auch alle zukünftigen Präsidenten mit zwei nachnamen beachtet.

Haben wir CASE schon gelernt?
Naja werds heute nacht wohl noch checken.
Es gibt keine Probleme, nur Herausforderungen!
-
www.shadowirc.org
-

Cee

Trainee

  • »Cee« ist männlich

Beiträge: 90

Registrierungsdatum: 17.01.2002

Wohnort: H. an der L.

Beruf: wenn ich das jetzt noch wüsste....

17

22.10.2003, 21:57

Jippieee!
Dank AnyKey mit seinem CASE habbich ne Lösung, die zumindest bei allen Doppel-nachnamen funzt... bei dreifachen natürlich nicht mehr aber was solls... Die sind im Ami-Land hoffentlich noch seltener als hier.
Mail an mich wenns wen interessiert.

Achja: Wenn ich beruflich mit ner DB mit 42 einträgen konfrontiert würde, würde ich lieber die 42 einträge von hand ändern als 4h mit soner scheissabfrage zubringen ;-)
Es gibt keine Probleme, nur Herausforderungen!
-
www.shadowirc.org
-

migu

free rider

  • »migu« ist männlich

Beiträge: 2 643

Registrierungsdatum: 11.12.2001

Wohnort: Hannover

Beruf: Developer

18

22.10.2003, 22:22

Zitat

Original von dfex
Hast du es denn "allgemein" hinbekommen? Würde dein Query auch ein "Van de Beugen H G M" schaffen? (Nur mal so rein interessehalber.)


Jawohl. Ich suche von hinten das zweite Leerzeichen. Existiert es, bekomme ich dessen Postition, sonst 0.
Wenn dann von dort bis zum Ende des Strings 4 Zeichen sind, dann muss ich in der Ausgabe hinten 4 Zeichen wegnehmen, sonst nur 2.

Das sieht konkret circa so aus:
decode(
length(substr(trim(pres_name), instr(trim(pres_name), ' ', -1, 2), length(trim(pres_name)))),
4,
substr(pres_name, 1, length(trim(pres_name))-4),
substr(pres_name, 1, length(trim(pres_name))-2))
tar: Anlegen eines leeren Archivs wird feige verweigert.

migu

free rider

  • »migu« ist männlich

Beiträge: 2 643

Registrierungsdatum: 11.12.2001

Wohnort: Hannover

Beruf: Developer

19

22.10.2003, 22:23

Zitat

Original von Cee
hmm kann man in CASE auch eine berechnete Funktion verwenden?


Jau, in CASE kannst du alles reinpacken.
CASE und DECODE sind beide brauchbar. DECODE mag ich lieber, weil es weniger Tipparbeit verursacht. :D
tar: Anlegen eines leeren Archivs wird feige verweigert.

KreiS

Senior Schreiberling

  • »KreiS« ist männlich

Beiträge: 701

Registrierungsdatum: 17.12.2001

Wohnort: Hannover

Beruf: moep

20

22.10.2003, 22:46

ich nehme die Leerzeichen von vorne, eigentlich bestimme ich nur die Länge des zweiten wortes über den abstand.

van Buren funktioniert ganz normal, ausser jetzt noch ein Pres mit 3 teiligen Nachnamen kommt.

letzt endlich fehlt nen trennzeichen, alles andere sind ja nur workarounds.

bin auf die korrektur mal dann gespannt :D wie viel man dann merkern darf ;)
kaneda spring <-> ks <-> KreiS
"surrender is an option ...time to change everything" (ks '04)

Dakota-Indianer(Weisheit),"Wenn Du entdeckst, dass Du ein totes Pferd reitest, steig ab"