IP per SQL "richtg" anzeigen

Squicky

Lt. Commander
Registriert
Sep. 2002
Beiträge
1.433
Hallo

in einer Tabelle sind IP Adressen und PC Namen gespeichert:

IP--------------------PC
10.0.5.3------------Peter
10.00.002.1------------Lisa
10.0.0.07-----------Bart
010.000.0.01------Klaus

wenn man "select * from Tabelle" bekommt man die Daten so wie sie gespeichert sind angezeigt. Die Feld IP und PC sind Zeichenketten.

Kann man per SQL die Daten so anzeigen, dass die IP immer wie folgt aussieht:
IP-------------------------------PC
010.000.005.003------------Peter
010.000.002.001------------Lisa
010.000.000.007------------Bart
010.000.000.001------------Klaus

Die IP Adresse sollen immer aus vier mal drei zahlen Päckchen bestehen.

Gibt es einen solchen SQL Befahl?

Danke
 
was hat das für vorteile? imo gibts dabei nur nachteile. wenn du es elementar speichern willst, erstell 4 ints (oder chars oder oder) und pack je ein oktett dort rein. ips sind aber immer noch strings respektive ein 32 bit int bzw. 4 chars.
 
Das ist doch mega unübersichtlich. So oder so würde ich solche Aufgaben (Formatierung, etc) *immer* dem verabeitenden Programm überlassen. Da kannst du das ja dann parsen und nach Bedarf aufplustern...
 
könntest den string zerlegen und denn mit ner schleife das mit dem 10 zu 010 machen. ip geht ja nur 0 bis 255, wenn ich mich nciht irre
 
Eine andere Programmiersprache w.z.B PHP gibt es nicht, es muss schon SQL sein.
 
Es gibt nichts dazwischen? Wie greifst du denn auf die Datenbank zu...?
 
Die Möglichkeiten der Formatierungen sind sehr unterschiedlich von DBMS zu DBMS. Also wie DerEineDa schon fragte, welches DBMS verwendest du?
 
Es ist ein Microsoft SQL Server 2008.
Ein Report Programm kann einen SQL Befehl nutzen und dann die Ausgabe (als Tabelle) anzeigen.

Und nun suche ich den SQL Befehl um die Daten wie oben beschrieben vom SQL Server zuerhalten.
 
Zwar nicht sonderlich schön aber sollte beim MS SQL Server in etwa so gehen (die einzelnen Zeilen sind die 4 einzelnen Felder):
Code:
RIGHT('00' + SUBSTR(feld, 1, CHARINDEX(feld, '.') - 1), 3) +
RIGHT('00' + SUBSTR(feld, CHARINDEX(feld, '.')  + 1, CHARINDEX(feld, '.', CHARINDEX(feld, '.') + 1) - 1), 3) + 
RIGHT('00' + SUBSTR(feld, CHARINDEX(feld, '.', CHARINDEX(feld, '.') + 1)  + 1, CHARINDEX(feld, '.', CHARINDEX(feld, '.', CHARINDEX(feld, '.') + 1) + 1) - 1), 3) +
RIGHT('00' + SUBSTR(feld, CHARINDEX(feld, '.', CHARINDEX(feld, '.', CHARINDEX(feld, '.', CHARINDEX(feld, '.') + 1) + 1) + 1)  + 1, CHARINDEX(feld, '.', CHARINDEX(feld, '.', CHARINDEX(feld, '.', CHARINDEX(feld, '.') + 1) + 1) + 1) - 1), 3) As IP
FROM tabelle
Ist aber ungetestet.
 
Du benutzt ein Reportprogramm, dass die Formatierung der Felder nicht verändern kann...? Fällt mir schwer zu glauben...
 
Zurück
Oben