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 IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Einen String in zwei Strings splitten per SQL

Mitglied: essu2307

essu2307 (Level 1) - Jetzt verbinden

14.01.2014, aktualisiert 15:12 Uhr, 2651 Aufrufe, 8 Kommentare, 2 Danke

Hallo,

ich habe folgenden String in meiner Tabelle "accountingEntryExport_13344_UTC090040_23.csv.gz" nun möchte ich per SQL-Befehl den in zwei Teilen Splitten, den Zwischenteil rauslöschen und wieder zusammenfügen, damit mein String so ausschaut : "accountingEntryExport_23.csv.gz"
kann mir bitte jemand von euch helfen, mit welchem Befehl ich das Schaffe ???
Mitglied: napperman
14.01.2014 um 11:40 Uhr
Moin!
Schau Dir mal die Befehle left() und right() an.
Damit klappt es wenn es immer von Links und rechts die gleiche Anzahl Zeichen sind.
Bitte warten ..
Mitglied: 109989
14.01.2014 um 11:42 Uhr
Hallo

was für ein sqlserver hast du im einsatz ( oracle, mysql, mssql) ?
möchstest du den string einfach anzeigen oder in der tabelle umschreiben?

zum anzeigen bei mssql einfach : select SUBSTRING(name, 16,12) from tbl
Bitte warten ..
Mitglied: essu2307
14.01.2014 um 11:45 Uhr
ist leider nicht immer gleich viele Zeichen von Links und Rechts sind immer unterschiedlich,

ich konnte davor den String per VBA Code Splitten und so zusammenfügen wie ich es wollte, aber es war in Excel jetzt habe ich meine Quelldaten in Access als Tabellen eingepflegt und versuche es mit SQL.

hier der VBA Code vielleicht kann man daraus die Lösung ableiten
Sub trennen()
Dim Arr() As String
Dim Str As String
Dim links As String
Dim rechts As String
Dim ganz As String




HilfString = StringSpalte + "65535"
EndZeile = Range("C65535").End(xlUp).Row 'ermittelt die Zelle mit dem letzten Inhalt

Windows("Lieferplan.xlsm").Activate


For i = 2 To EndZeile - 1 Step 1
Sheets("Sammlung").Activate
Str = Cells(i, StringSpalte).Value
Arr = Split(Str, "_")
links = Arr(LBound(Arr))
rechts = Arr(UBound(Arr))
ganz = links & "_" & rechts
'Debug.Print ganz
Call abfragen(ganz)
Next i


End Su
Bitte warten ..
Mitglied: essu2307
14.01.2014 um 11:52 Uhr
es ist eine Leere Access Datenbank die aus zwei Tabellen besteht, diese Tabellen wurden aus Excel Sheets importiert
Bitte warten ..
Mitglied: colinardo
14.01.2014, aktualisiert um 15:12 Uhr
Hallo essu2307, Willkommen im Forum!
in Access kannst du es auch via VBA machen. Das Script durchläuft alle Zeilen der Tabelle und ändert den Inhalt der Spalte entsprechend.:
(In Zeile 2 noch den Namen der Tabelle und in Zeile 3 den Namen der Spalte in dieser Tabelle eintragen)
01.
Sub ModifyColumn()
02.
    tblName = "Accounting"
03.
    colName = "DeinSpalte"
04.
    Dim rs As Recordset
05.
    Set rs = CurrentDb.OpenRecordset(tblName)
06.
    rs.MoveFirst
07.
    While Not rs.EOF
08.
        If Trim(rs.Fields(colName).Value) <> "" Then
09.
            arrParts = Split(rs.Fields(colName).Value, "_", -1, vbTextCompare)
10.
            rs.Edit
11.
            rs.Fields(colName).Value = arrParts(0) & "_" & arrParts(3)
12.
            rs.Update
13.
        End If
14.
        rs.MoveNext
15.
    Wend
16.
End Sub
oder wenn die Anzahl an Unterstrichen dazwischen unterschiedlich sein kann nimmst du diese Variante
01.
Sub ModifyColumn()
02.
    tblName = "Accounting"
03.
    colName = "DeinSpalte"
04.
    Dim rs As Recordset
05.
    Set rs = CurrentDb.OpenRecordset(tblName)
06.
    Set regex = CreateObject("vbscript.regexp")
07.
    regex.Pattern = "^([^_]+_).*_([^_]+)$"
08.
    rs.MoveFirst
09.
    While Not rs.EOF
10.
        If rs.Fields(colName).Value <> "" Then
11.
            strInhalt = rs.Fields(colName).Value
12.
            Set matches = regex.Execute(strInhalt)
13.
            rs.Edit
14.
            rs.Fields(colName).Value = matches(0).submatches(0) & matches(0).submatches(1)
15.
            rs.Update
16.
        End If
17.
        rs.MoveNext
18.
    Wend
19.
End Sub
Grüße Uwe
Bitte warten ..
Mitglied: Chmumann
LÖSUNG 14.01.2014, aktualisiert um 15:12 Uhr
Hi essu2307,

probier mal das hier aus:
01.
SELECT 
02.
'accountingEntryExport_13344_UTC090040_23.csv.gz' AS 'Org',
03.
LEFT('accountingEntryExport_13344_UTC090040_23.csv.gz', CHARINDEX('_', 'accountingEntryExport_13344_UTC090040_23.csv.gz', 1)) AS 'Left',
04.
RIGHT('accountingEntryExport_13344_UTC090040_23.csv.gz', LEN('accountingEntryExport_13344_UTC090040_23.csv.gz') - PATINDEX('%_[0-9][0-9].csv.gz','accountingEntryExport_13344_UTC090040_23.csv.gz')) AS 'Right'
Im Grunde genommen musst nur noch den richten Feldnamen einfügen.
01.
SELECT 
02.
[DeinFeldname] AS 'Org',
03.
LEFT([DeinFeldname], CHARINDEX('_', [DeinFeldname], 1)) AS 'Left',
04.
RIGHT([DeinFeldname], LEN([DeinFeldname]) - PATINDEX('%_[0-9][0-9].csv.gz',[DeinFeldname])) AS 'Right',
05.
LEFT([DeinFeldname], CHARINDEX('_', [DeinFeldname], 1)) +
06.
RIGHT([DeinFeldname], LEN([DeinFeldname]) - PATINDEX('%_[0-9][0-9].csv.gz',[DeinFeldname])) AS 'Combi'
LG Chmumann
Bitte warten ..
Mitglied: essu2307
14.01.2014 um 15:08 Uhr
Perfekt vielen Dank Uwe klappt sehr gut
Bitte warten ..
Mitglied: essu2307
14.01.2014 um 15:12 Uhr
Danke Chmumann klappt auch gut :D:D
Bitte warten ..
Ähnliche Inhalte
Debian

Bash - String zwischen zwei Kommata ausgeben

gelöst Frage von plutowitschDebian3 Kommentare

Hallo, ich suche eine Möglichkeit wie ich einen String der zwischen zwei Kommata steht ausgeben kann. Das Problem ist, ...

Java

Von Delphi String zu Java String

Frage von GreenDinoJava1 Kommentar

Hallo zusammen! Ich bin dabei Delphicode in Javacode zu übertragen. Frage: ist '<text>' in Delphi equivalent zu "<text>" in ...

Visual Studio

String-Vergleich optimieren

gelöst Frage von MarcoBornVisual Studio4 Kommentare

Hallo Forum, ich habe folgenden Code-Schnipsel (vereinfacht): Ich vergleiche für jeden Absatz eines Word-Textes Inhalte mit 9 Strings, die ...

Visual Studio

DotNet String Sortierung

gelöst Frage von emeriksVisual Studio5 Kommentare

Hi, habe hier im .Net einen komischen Effekt beim Sortieren von Strings. Gegeben sind 3 Strings (in Wunsch-Reihenfolge) ABC-XY-100 ...

Neue Wissensbeiträge
Windows 10

"Windows 10 Pro V1903: Gruppenrichtlinie "Telemetrie zulassen" aktivierbar?"

Tipp von Snowbird vor 3 StundenWindows 101 Kommentar

Sicherheits-Tools

TrendMicro Worry-Free Business Security 10.0 SP1 - Jetzt in Deutsch verfügbar! (Windows 10 1903 Support)

Tipp von TrinXx vor 1 TagSicherheits-Tools1 Kommentar

Moin! Nach wochenlangem Warten wird Trend Micro das SP1 für WFBS 10 voraussichtlich am 26.08.19 veröffentlichen. Ich habe das ...

Hyper-V
Setup VM W2016 startet nicht in Hyper-V 2016
Erfahrungsbericht von keine-ahnung vor 2 TagenHyper-V7 Kommentare

Moin, sitze gerade über meinem neuen Server und versuche, die VM auf den Host zu prügeln. Jetzt wollte ich ...

Server-Hardware

HPE Proliant ML350P Gen8 Probleme mit Zugriff auf Raid-Volumes

Erfahrungsbericht von goscho vor 3 TagenServer-Hardware1 Kommentar

Hallo Leute, das Problemgerät: HPE ML350P G8 Windows Server 2012R2 HyperV-Host 8 x 300 GB 10K SAS HDD (1 ...

Heiß diskutierte Inhalte
Server
Ein Server ins Haus stellen. Was brauche ich dafür?
Frage von JoschiTomServer13 Kommentare

Hallo Community, ich spiele mit dem Gedanken eine Server mir zu holen. Was brauche ich dafür? Und wie sind ...

Windows Server
Ist es möglich, eine deutsche W2016 Installation mit einer UK-Lizenz zu aktivieren?
gelöst Frage von keine-ahnungWindows Server10 Kommentare

Moin at all, ist ja noch Freitag. Ich habe hier noch zwei UK OEM W2016 Standard Pakete rumfliegen Muss ...

Batch & Shell
Mittels SED Text ersetzen in Anführungszeichen
gelöst Frage von nekronBatch & Shell9 Kommentare

Moin … bin nicht wirklich der SED/regex Mensch, vielleicht kann mir jemand auf die Schnelle Helfen :) ich habe ...

LAN, WAN, Wireless
Mikrotik Gast-Wlan keine Verbindung zum Internet?
Frage von dirkschwarzLAN, WAN, Wireless8 Kommentare

Guten Morgen, habe ein wahrscheinlich einfaches Problem, bei dem ich aber nicht wirklich weiter komme Ich möchte ein Gast-Wlan ...