Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWünsch Dir wasWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst MSSQL Substring

Mitglied: DocuSnap-Dude

DocuSnap-Dude (Level 2) - Jetzt verbinden

31.05.2020, aktualisiert 10:45 Uhr, 382 Aufrufe, 6 Kommentare, 1 Danke

Hallo,

heute habe ich folgende Hearusforderung:

Tabelle1 (Netzwerkbereichsdefintionen)
Ip-Bereiche Name
192.168.0.0/24 Standardnetz
10.27.0.0/16 Servernetz
172.16.4.0/24 DMZ

Tabelle 2 (Geräteliste)
Gerätename IP-Adresse
Server1 192.168.0.16
Server2 10.27.0.12
Server3 172.16.4.4
Server4 10.27.0.13

Ziel nun in SQL: gib mir Gerätenamen und Netzwerkname der Geräte aus, welche sich im gleichen Netz befinden.

Es sollte also wie folgt aussehen im Resultat:
Netzwerkname Gerätename
Standardnetz Server1
Servernetz Server2
Servernetz Server4
DMZ Server3


Jetzt habe ich aber gerade eine Barrikade im Kopf, bin auch nicht so Deep-Dive SQL-Spezi. Hier mal mein Ansatz:

Wo ich jetzt komplett im Kopf fest hänge:
  • Ich müsste jetzt eine Unterabfrage bauen, in welchem ich teile des Netzwerkbereiches gegen die IP des Geräte vergleiche.
    • Problem: die Schreibweise der IP-Adressen, ich muss ausschliessen das jemand "010.027.x.x" schreibt anstelle "10.27..x.x" (volle IPSchreibweise vs. Kurzform)
    • Sicherlich Substring's, aber wie kombinieren?
  • als Trennkriterium könnte man in Tabelle 1 Spalte 1 die Punkte oder den Slash nutzen (also /24) z.b. aber wie am besten
  • Im Join vergleichen: was gegen was

Wie gesagt, komplett irgendwie im Kopf verrant gerade dabei, eventuell sehe ich den Wald vor Bäumen nicht. Daher danke für jegliche Unterstützung beim Baumfällen

F.
Mitglied: em-pie
31.05.2020, aktualisiert um 12:19 Uhr
Moin,

kurzte Frage:
welches DBMS ist im EInsatz, auch welche Version.
  • MS SQL 2008R2 fehlen Beispielsweise ggü. MS SQL 2012 manche integrierten Funktionen.
  • mySQL ist dann an manchen Stellen noch mal ganz anders.
  • 'ne DB2 kennt z.B. kein CONCAT()

Mit den Angaben kann man gezielter helfen...


€dit:
bei MS SQL gibt es die Funktion PARSENAME().
Schaue dir die einmal an:
https://docs.microsoft.com/de-de/sql/t-sql/functions/parsename-transact- ...
https://stackoverflow.com/questions/33717815/how-to-compare-ip-addresses ...
€dit2:
RegEx wäre auch ggf. eine Möglichkeit:
https://www.sqlshack.com/t-sql-regex-commands-in-sql-server/

Gruß
em-pie
Bitte warten ..
Mitglied: ukulele-7
02.06.2020 um 09:56 Uhr
Mit Substring ist das sehr müßig, du müsstest für jeden Punkt wieder die Substrings verschachteln, du kannst nicht einfach sagen 2ter Punkt bis 3ter Punkt. Aber bitte erstmal SQL Version posten bevor man sich die Arbeit macht.
Bitte warten ..
Mitglied: DocuSnap-Dude
04.06.2020 um 10:21 Uhr
Zitat von em-pie:

Moin,

kurzte Frage:
welches DBMS ist im EInsatz, auch welche Version.
  • MS SQL 2008R2 fehlen Beispielsweise ggü. MS SQL 2012 manche integrierten Funktionen.

Hi, es ist ne SQL2017 (mindestens aber immer 2014) eben weil ich Concat etc benötige.

Dnake dir, ich lese mich mal rein.

Grüße!
Bitte warten ..
Mitglied: DocuSnap-Dude
04.06.2020 um 10:22 Uhr
Zitat von ukulele-7:

Mit Substring ist das sehr müßig, du müsstest für jeden Punkt wieder die Substrings verschachteln, du kannst nicht einfach sagen 2ter Punkt bis 3ter Punkt. Aber bitte erstmal SQL Version posten bevor man sich die Arbeit macht.

Jepp, Substring habe ich bemerkt wird zu üppig und wirr. Daher halt mein Balken vor dem Kopf . MS-SQL Version >2014, in der regel 2017 aufwärts.

Grüße!
Bitte warten ..
Mitglied: ukulele-7
LÖSUNG 04.06.2020 um 22:22 Uhr
Zitat von DocuSnap-Dude:

Jepp, Substring habe ich bemerkt wird zu üppig und wirr. Daher halt mein Balken vor dem Kopf .

Ich muss zugeben ich habe das unterschätzt, eine in meinem Kopf erstmal total elegante Lösung führt zu, sagen wir, einer show of force in Sachen SQL mit cte, xml, cross apply und irgendwas was ich selbst noch nichtmal checke mir aber binäre Ziffern liefert. Das in einem Abwasch zu "joinen" geht nicht wenn man da noch durchblicken will, daher habe ich eine Funktion gebaut.
Zu der Funktion muss man ganz klar sagen das noch eine Syntax- und Plausibilitätsprüfung sinnvoll wäre. Weil sonst Shit in, Fehler out.

Mit der Funktion lassen sich deine Testdaten erweitern und dann gegeneinander abgleichen:
Theoretisch könnten sich Adressen in mehreren Netzen befinden wenn diese sich überschneiden. Oder zu Adressen gibt es kein Netz dann würden sie wegen LEFT JOIN nicht gelistet, ich vermute aber mal das kommt beides nicht vor in deinen Daten.
Bitte warten ..
Mitglied: DocuSnap-Dude
08.06.2020 um 13:29 Uhr
Danke dir, du bist mein Held! Damit komme ich weiter!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell: Substring
gelöst Frage von PeterGygerBatch & Shell9 Kommentare

Hallo Eine Frage an die Praktiker. Ich wil aus einem String einen Teil "rauschneiden". gibt aus, dass diese Zeile ...

Batch & Shell

Frage zu Powershell substring und indexof

gelöst Frage von mschaedler1982Batch & Shell5 Kommentare

Hallo zusammen, ich bin schon lange am probieren, aber komme irgendwie nicht weiter. Ich will eine Text Datei einlesen ...

Batch & Shell

Substring in einer Textvariablen ersetzen

gelöst Frage von donnyS73lbBatch & Shell3 Kommentare

Hallo, meine *.bat liest aus einer Textdatei die Textzeilen aus und befüllt damit Batch-Variablen. Nun möchte ich in der ...

Datenbanken

MSSQL-Zugriffsproblem

Frage von petereDatenbanken3 Kommentare

Hallo, ich habe eine 32bit VB6-Anwendung, mit der ich auf MSSQL 2012 Server Instanzen zugreifen möchte, die einen Spielserver ...

Neue Wissensbeiträge
Microsoft
The Premier Field Engineering Blog is MOVING!
Information von Dani vor 14 StundenMicrosoft

Hello to all of our AWESOME readers that have helped us build the Premier Field Engineering TechCommunity blog up ...

Sicherheit
Alexa un Co. TU-Darmstadt entwickelt Anti-Spy Tool
Information von the-buccaneer vor 1 TagSicherheit3 Kommentare

Moinsen! HR-Info hatte heute ein Feature in dem das "LeakyPick" der TH-Darmstadt vorgestellt wurde. Das Tool existiert bisher nur ...

Linux Tools
Rsync datenvolumen reduzieren mit -fuzzy
Anleitung von NetzwerkDude vor 3 TagenLinux Tools

Moin, aus der Kategorie "Häufig übersehene Parameter": Meistens benutzt kaum jemand den fuzzy Parameter von rsync, und er taucht ...

Sicherheit

Citrix ADC, Gateway u. SD-Wan: Schwachstellen patchen

Information von kgborn vor 6 TagenSicherheit

Keine Ahnung, wie viele Admins von Citrix-Applicances hier unterwegs sind und ob die Versorgung mit Advisories klappt. Aber im ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
Backup einer an die FRITZBox angeschlossenen Festplatte
Frage von DJ-KeyFestplatten, SSD, Raid35 Kommentare

Habe eine Frstplatte, die mehrere Partitionen beherbergt. Die Festplatte die an der FRITZ!Box als NAS dient ist schon älter ...

Windows Server
Anmelden via RDP bringt "Passwort fehlerhaft" - lokale Anmeldung möglich
Frage von it-froschWindows Server30 Kommentare

Hallo Kollegen, Windows Server 2012 Wir haben einen Server, an dem wir uns mit einem lokalen Account anmelden. Die ...

Exchange Server
Exchange CAL Lizenzen?
gelöst Frage von KleinProfiExchange Server16 Kommentare

Hallo Jungs, wir sind in der Firma 10 Mann, haben aber auf dem Exchange 15 Postfächer bzw. 15 User ...

Grafikkarten & Monitore
Multi Monitor HDMI Bildschirm verschwindet
Frage von FMParadisoGrafikkarten & Monitore15 Kommentare

Hallo Zusammen, ich habe ein Problem mit meinem Monitor-Setup. Leider weiß ich auch, dass es wohl locker (mindestens) 5 ...