Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

SQL Befehl zum Teilen eines String

Frage Entwicklung Datenbanken

Mitglied: TrommelBommel

TrommelBommel (Level 1) - Jetzt verbinden

25.04.2006, aktualisiert 23:11 Uhr, 23132 Aufrufe, 5 Kommentare

Hallo,
ich habe in einer Datenbank eine Spalte in der z.B: solch Werte stehen ":abc:abc:abc".
Wie kann ich diese per SQL Befehl ausseinander Teilen zu 3 Werten "abc"
Special greets aus der Lausitz.
Mfg TrommelBommel
Mitglied: Dani
25.04.2006 um 14:10 Uhr
Hi,
also ich wüsste nicht, dass man das in SQL machen könnte! Aber in PHP geht es mit:

Split:
01.
list($w1,$w2,$e3)=split("\:",Variable);
Explode:
01.
$werte=explode(":",Variable); //Hier stehen alle Werte in einem Feld / Array drinne.

Gruß
Dani
Bitte warten ..
Mitglied: pi314
25.04.2006 um 15:20 Uhr
Wie kann ich diese per SQL Befehl
ausseinander Teilen zu 3 Werten

Wie du schon bemerkst, bräuchtest ja einen Befehl.
Da aber SQL nur eine Abfragesprache ist (eigentlich keine richtige Programmiersprache damit), kannst du solche Dinge nur über Sprachen verwirklichen, da du ja auch Kontrollstrukturen usw. brauchst.
Man kann nicht per SQL-Abfrage aus einer Spalte drei (oder nicht definierte) machen.
Könnte höchstens sein, dass es herstellerabhängiges SQL gibt, das so was zur Verfügung stellt, aber native-SQL sieht das nicht vor.

Somit entweder per PHP (siehe Dani-Kommentar) oder per PL/SQL... Prozeduren sind ja jetzt auch in MySQL möglich.
Bitte warten ..
Mitglied: TrommelBommel
25.04.2006 um 15:26 Uhr
Vielen Dank für die Antworten.
Wieder eine Erfahrung reicher
Bitte warten ..
Mitglied: Biber
25.04.2006 um 20:35 Uhr
Hmm, so ist es aber missverständlich formuliert - sowohl Frage wie Antworten.

a) Von was für einer Datenbank reden wir denn? Paradox? DB2? Oracle? Teradata?
In ziemlich allen ernstzunehmenden SQL-Datenbanken kannst Du User Defined Functions definieren, die Dir auch so eine Token/ArrayList-Mimik ermöglichen.
Diese UDFs sind SQL-nah aufgebaut (also Erweiterungen des Standard-SQL-Umfangs), aber eben keine Zugriffe auf andere Programmiersprachen.

b) Aber, den Umweg über andere Prog-Sprachen/Dialekte gibt es ja auch - billigstes Beispiel wäre MS-ACCESS mit seinem VBA-Schnickschnack.

c) und last not least: eigentlich ist es in Datenbanktabellen ohnehin so gedacht, dass auf VIEWs oder Abfragen/Sichten zugegriffen wird und nicht auf die physikalisch vorhandenen Datenfelder. Bau Dir einen View, der Dir Dein eines vorhandenes Feld als drei einzelne Felder anzeigt. Fertig.
Allerdings wirst Du das Feld NICHT durch Änderung der drei Teilfelder updaten können ohne Programmlogik.

Gruß
Biber
Bitte warten ..
Mitglied: Guenni
25.04.2006 um 23:11 Uhr
Nur so nebenbei:

Ein Blick in die Hilfe oder in ein Buch ist manchmal hilfreich

Zumindest MS-ACCESS und MySQL(mehr habe ich nicht zum Testen) bieten
entsprechende Funktionen.

Eine Spalte ist mit folg. Wert belegt:


Spalte
abc:def:ghi

Dann bringt folgende Anweisung

SELECT left(spalte,3) as Wert1, left( right(spalte,7),3) as Wert2,right(spalte,3) as Wert3 FROM Tabelle;

dieses Ergebnis:

Wert1 Wert2 Wert3
abc def ghi

Die Syntax ist bei MS-ACCESS und MySQL identisch.

Na gut, ist für oben genannte Anwendung natürlich nur sinnvoll, wenn der Spalteninhalt klar definiert ist bzw.
einer Regel unterliegt.

Aber ich denke mal, dass auch andere SQL-Versionen Funktionen zur Stringmanipulation bereitstellen,
denn es muß ja(m.M. nach) möglich sein, entsprechende VIEWs zu erzeugen, ohne auf komplexe
Programmierlogik(VBA, C++ etc) und Webinterfaces(PHP) zurückgreifen zu müssen.

Gruß
Günni
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Datenbanken
gelöst SQL - mehrere UPDATE-Anweisungen in einem String per vbs (4)

Frage von goodbytes zum Thema Datenbanken ...

Batch & Shell
gelöst String automatisch anpassen (erweitern oder kürzen) (9)

Frage von CreatorX zum Thema Batch & Shell ...

VB for Applications
VBA Grenzwerte in String prüfen Regex ??? Excel2010 (1)

Frage von Chillministrator zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Erkennung und -Abwehr
Virenschutz - Meinungen (28)

Frage von honeybee zum Thema Erkennung und -Abwehr ...

Windows 10
Welches OS für Firmengeräte? (18)

Frage von MarkusVH zum Thema Windows 10 ...

Netzwerke
Abisolierwerkzeug (18)

Frage von SarekHL zum Thema Netzwerke ...

Exchange Server
SBS2011: POP3-Connector 10 MB Grenze Email Benachrichtigung (17)

Frage von bogi1102 zum Thema Exchange Server ...