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, 22721 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.
Mit freundlichen Grüßen 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
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Datenbanken
gelöst SQL - mehrere UPDATE-Anweisungen in einem String per vbs (4)

Frage von goodbytes zum Thema Datenbanken ...

PHP
gelöst Explode, split - String teilen und in Table mit for-schleife (4)

Frage von Protected zum Thema PHP ...

Datenbanken
gelöst SQL-Abfrage - DISTINCT - letztes Datum (3)

Frage von emeriks zum Thema Datenbanken ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...