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

Frage Entwicklung Datenbanken

Mitglied: essu2307

essu2307 (Level 1) - Jetzt verbinden

14.01.2014, aktualisiert 15:12 Uhr, 2393 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
Datenbanken
String mit charindex abtrennen und splitten
gelöst Frage von 0belixxDatenbanken2 Kommentare

Hallo Leute, folgendes Problem ich muss Text aus eine Datenbank in eine andere bringen, wobei der Ursprungstext bis zu ...

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, ...

Batch & Shell
String herausfiltern
gelöst Frage von goodbytesBatch & Shell5 Kommentare

Hallo, ich möchte gerne bei vielen Maschinen per Loginscript den FQDN ermitteln. Dafür wollte ich ihn aus der Rückgabe ...

C und C++
C-Sharp - String-Manipulation (SQL String manuell generieren)
gelöst Frage von WP8FanC und C++6 Kommentare

Hallo, Ich habe folgendes Problem in C# In einer Anwendung soll eine SQL Abfrage angestoßen werden. die Felder die ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 42 MinutenViren und Trojaner

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 4 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Vmware
Installation Windows 10 VMware
Frage von Ghost108Vmware17 Kommentare

Hallo zusammen, versuche gerade mit Hilfe des vshpere clients eine virtuelle Windows 10 maschine aufzusetzen. 1. virtuelle Maschine erstellt ...

Exchange Server
SBS 2011 E-Mails können gesendet werden, aber nicht von extern empfangen
Frage von andreas1234Exchange Server14 Kommentare

Hallo Community, ich habe das Problem, dass seit knapp zwei Wochen die E-Mails von meinem SBS 2011 einwandfrei gesendet ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell8 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...