oli83 Geschrieben 6. Juni 2005 Geschrieben 6. Juni 2005 Ich habe eine Tabelle, in der Adressdaten komplett großgeschrieben sind. Also z.B. MUSTER FIRMA MUSTER-WEG 10 Jetzt soll die Schreibweise auf gemischt umgstellt werden. Also Muster-Firma Muster-Weg 10 Gibt es da eine Möglichkeit über einen SQL-Befehl?
TheyCallMeGeek Geschrieben 6. Juni 2005 Geschrieben 6. Juni 2005 nee, da der sql-server ja nicht die bedeutung kennt. das ist migrationsarbeit, d.h. du schreibst ein programm, dass das richtig macht. falls du wirklich nur die ersten Buchstaben aller durch " " getrennten wörter groß schreiben willst, ist das auch mit den stringfunktionen deiner datenbank möglich (gibt aber sicher datensätze wo das ein falsches ergebniss liefert)
cattac Geschrieben 6. Juni 2005 Geschrieben 6. Juni 2005 Na, das wird wohl so einfach nicht werden. Sind Name, Straße, Hausnummer, PLZ, Ort in unterschiedlichen Feldern? Dann solltest du einfach mal folgendes versuchen: Schreibe doch am besten mal eine Procedure oder ein Script, welches ab dem zweitem Buchstaben einen "lowercase" macht. Da ich in Oracle programmiere, weiß ich jetzt den korrekten Befehl für lowercase für MS-SQL nicht. Dürfte es aber auch geben. Probiere da am besten mit einer Testtabelle aus, bevor du das auf der Adresstabelle abfährst. Sollte die Adresse in einem Feld gespeichert sein, was ich mal nicht denke, dann solltest du die Tabelle vorher normalisieren, um an die einzelnen Teile der Adresse heranzukommen. MfG, cattac
perdian Geschrieben 6. Juni 2005 Geschrieben 6. Juni 2005 die tabelle ist schon normalisiertUnd? Wie weit? Welche Normalform? Zum Problem selbst: Nein, einen allgemeinen SQL Befehl gibt es nicht. Wenn du Glück hast bietet dir die Datenbank (du hast uns ja auch nicht verraten, welche du verwendest also können wir da auch nur spekulieren) eine FirstLetterToUppercase Funktion an. Bekannt ist mir das allerdings von keiner Datenbank. So wirst du dann nicht drumherumkommen das ganze als Stored Procedure oder in deiner Applikation selber zu handlen.
oli83 Geschrieben 6. Juni 2005 Autor Geschrieben 6. Juni 2005 3. Normalform liegt vor und ich verwende MS-SQL. Ich werd das ganze jetzt als Applikation lösen. Danke für die Hilfe.
IJK Geschrieben 6. Juni 2005 Geschrieben 6. Juni 2005 Bedenke die Ausnahmen... So ist im Namen "weg" meist eine Eigentümergemeinsschaft und sollte als WEG dargestellt werden, während in der Straße es zB der Fritz-Müller-Weg ist Das ist kein triviales Thema und sollte nicht locker nebenbei gemacht werden. LiGrü Michael (gerade so eine Umstellung hinter sich, die dritte)
cattac Geschrieben 7. Juni 2005 Geschrieben 7. Juni 2005 Ja, Bindestriche könnte man logischerweise auch mit einarbeiten, sollte auch nicht dass Problem sein - könnte nur ein Mörderaufwand werden. Musst du so eine Art NextWork-Procedure bauen, welches ab einem Bindestrich das neue Wort kennzeichnet und ab dem zweiten Buchstaben alles auf lowercase umstellt (nur das jeweils gefundene Wort!). Hinterher sollte man allerdings sich die Datensätze man nochmal genau (manuell) unter die Lupe nehmen, um zu schauen, ob alles glatt gelaufen ist.
AxlHammer Geschrieben 7. Juni 2005 Geschrieben 7. Juni 2005 Hallo zusammen, also bei Oracle gibt es dafür die Funktion initcap(p_string), die liefert Dir bei dem Aufruf von initcap('FRITZ-MUELLER-WEG') -> 'Fritz-Müller-Weg' Aber leider schreibst Du ja nicht, welches DBMS Du verwendest... Gruss, Axl
Flori Geschrieben 7. Juni 2005 Geschrieben 7. Juni 2005 3. Normalform liegt vor und ich verwende MS-SQL. Ich werd das ganze jetzt als Applikation lösen. Danke für die Hilfe. Hm, ich geh mal davon aus, daß Du mit "MS-SQL" Microsoft meinst und demnach evlt. mit dem SQL Server 200 o.ä. arbeitest. Da gibts wohl leider wirklich nicht so bequeme Funktionen wie Informix oder Oracle mit INITCAP bieten. Dieser Link führt zu den String-Funktionen, die SQL Server 2000 so bietet: Microsoft SQL-Referenz Grüße Flori
AxlHammer Geschrieben 8. Juni 2005 Geschrieben 8. Juni 2005 Aber leider schreibst Du ja nicht, welches DBMS Du verwendest... @oli83 Sorry, hab Deinen letzten Post wohl nicht ganz so genau unter die Lupe genommen...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden