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, 23653 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 ..
Ähnliche Inhalte
Windows 7
Link auf Desktop um CMD Befehl auszuführen (4)

Frage von XPFanUwe zum Thema Windows 7 ...

Batch & Shell
gelöst String in TXT suchen, überprüfen und wenn noetig aendern ? (4)

Frage von buliwyf zum Thema Batch & Shell ...

Visual Studio
SQL-Server Reverseengenering (11)

Frage von Herbrich19 zum Thema Visual Studio ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
LAN, WAN, Wireless
Zwei Subnetze mit je eigenem Router und Internetzugang verbinden (17)

Frage von hannsgmaulwurf zum Thema LAN, WAN, Wireless ...

Windows Server
WIndows Server 2016 core auf dem Intel NUC NUC5i5RYK i5 5250U (17)

Frage von IxxZett zum Thema Windows Server ...

Windows Server
gelöst Einzelnes Windows Update über GPO deinstallieren (16)

Frage von lordofremixes zum Thema Windows Server ...