Dies ist eine statische Kopie unseres alten Forums. Es sind keine Interaktionen möglich.
This is a static copy of our old forum. Interactions are not possible.

NullAhnung

Erfahrener Schreiberling

  • "NullAhnung" is female
  • "NullAhnung" started this thread

Posts: 332

Date of registration: Apr 28th 2003

1

Tuesday, October 21st 2003, 7:41pm

Sql

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

KreiS

Senior Schreiberling

  • "KreiS" is male

Posts: 701

Date of registration: Dec 17th 2001

Location: Hannover

Occupation: moep

2

Tuesday, October 21st 2003, 7:59pm

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" is male

Posts: 1,234

Date of registration: Dec 11th 2001

3

Tuesday, October 21st 2003, 10:29pm

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" is male

Posts: 701

Date of registration: Dec 17th 2001

Location: Hannover

Occupation: moep

4

Tuesday, October 21st 2003, 10:38pm

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" is male

Posts: 2,643

Date of registration: Dec 11th 2001

Occupation: Developer

5

Tuesday, October 21st 2003, 10:46pm

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

Catherine

Trainee

  • "Catherine" is female

Posts: 61

Date of registration: Oct 6th 2003

6

Wednesday, October 22nd 2003, 5:18pm

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" is male

Posts: 248

Date of registration: Dec 11th 2001

7

Wednesday, October 22nd 2003, 5:44pm

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

Catherine

Trainee

  • "Catherine" is female

Posts: 61

Date of registration: Oct 6th 2003

8

Wednesday, October 22nd 2003, 6:14pm

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

cowhen

Muuuh!

  • "cowhen" is male

Posts: 1,374

Date of registration: Dec 13th 2001

9

Wednesday, October 22nd 2003, 6:20pm

Quoted

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" is male

Posts: 248

Date of registration: Dec 11th 2001

10

Wednesday, October 22nd 2003, 6:38pm

Quoted

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" is male

Posts: 1,234

Date of registration: Dec 11th 2001

11

Wednesday, October 22nd 2003, 7:04pm

Quoted

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" is male

Posts: 1,374

Date of registration: Dec 13th 2001

12

Wednesday, October 22nd 2003, 7:12pm

Quoted

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" is male

Posts: 701

Date of registration: Dec 17th 2001

Location: Hannover

Occupation: moep

13

Wednesday, October 22nd 2003, 7:40pm

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

Posts: 451

Date of registration: Dec 11th 2001

Location: H-Town

Occupation: Student

14

Wednesday, October 22nd 2003, 8:05pm

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" is male

Posts: 90

Date of registration: Jan 17th 2002

Location: H. an der L.

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

15

Wednesday, October 22nd 2003, 8:06pm

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" is male

Posts: 90

Date of registration: Jan 17th 2002

Location: H. an der L.

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

16

Wednesday, October 22nd 2003, 8:25pm

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" is male

Posts: 90

Date of registration: Jan 17th 2002

Location: H. an der L.

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

17

Wednesday, October 22nd 2003, 9:57pm

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" is male

Posts: 2,643

Date of registration: Dec 11th 2001

Occupation: Developer

18

Wednesday, October 22nd 2003, 10:22pm

Quoted

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" is male

Posts: 2,643

Date of registration: Dec 11th 2001

Occupation: Developer

19

Wednesday, October 22nd 2003, 10:23pm

Quoted

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" is male

Posts: 701

Date of registration: Dec 17th 2001

Location: Hannover

Occupation: moep

20

Wednesday, October 22nd 2003, 10:46pm

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"