text: MAX Wert suchen in einer VARCHAR Spalte mit SUBSTRING | Datentechnologien | myCSharp.de - DIE C# und .NET Community
  Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Datentechnologien » MAX Wert suchen in einer VARCHAR Spalte mit SUBSTRING
  MAX Wert suchen in einer VARCHAR Spalte mit SUBSTRING
  Hier wird es mir etwas zu Hoch, aber ich brauche eine solche Funktion.
  Ich möchte aus einer Reihe an Daten (muss VARCHAR sein) den MAX Wert innerhalb einer Zeichenkette finden.
  Datumeins123bla
  Datumzwei234etc
  Datumzwei456usw
  Quasi: select * from BlaTB where BlaSpalte like 'Datumzwei%'
  SELECT * FROM testtable WHERE substring(test,2)=(SELECT MAX(CAST(SUBSTRING(test,2) AS SIGNED)) FROM testtable); und versuche auf meine Bedürfnisse umzumünzen
  Das ist mir SQL technisch (noch) etwas zu hoch und weiss nicht wie ich untere Anfrage mit LIKE kombinieren kann.
  25.06.2019 10:38 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
  Einfach per AND kombinieren:
  SELECT * FROM BlaTB WHERE BlaSpalte LIKE 'Datumzwei%' AND SUBSTRING(BlaSpalte,10,3)=(SELECT MAX(CAST(SUBSTRING(BlaSpalte,10,3) AS SIGNED)) FROM BlaTB);
  Klappt aber nur, wenn immer genau 3 Ziffern dahinter stehen (10 ist die Position).
  Edit: evtl. BlaSpalte LIKE 'Datumzwei%' auch noch in den Subselect per AND einbauen (je nachdem ob du den MAX-Wert über alle Daten haben willst oder nur bezogen auf deine LIKE-Einschränkung).
  Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Th69 am 25.06.2019 11:23.
  25.06.2019 11:20 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
  nunja - die korrekte Implementierung hängt vom genauen String ab - scheinbar suchst du im String jeweils das "123" "456" - wichtig wäre hier zu wissen, ob Substring überhaupt einsetzbar ist. (also ob der Teil vor dem interessanten Teil immer gleich lang ist, und ob der interessante Teil auch immer gleich lang ist)
  Ist das so überhaupt einsetzbar für dich? Wie genau funktioniert die Aufteilung innerhalb dieser Spalte? Und zudem: Wer zum Teufel hat das verbrochen?
  25.06.2019 11:27 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
  Warum muss der Datumswert als VARCHAR gespeichert werden? Daten sollten immer in der eigenen Urform gespeichert werden - die Umwanldung zur Anzeige übernimmt später der Client.
  Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Stefan.Haegele am 26.06.2019 07:07.
  26.06.2019 07:07 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
  Es handelt sich um folgendes Format: Jahr-Monat-LfdNr.-XX
  Also nicht nur Datum sondern noch extra Zeichen
  Fragliche Teile sind gleich lang. Datum(8 Zeichen), Lfdnr.(4 Zeichen), 2 extra Zeichen
  Letzte Frage: Ich nicht :D
  26.06.2019 08:19 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
  Dann würde ich die Daten in 2 Spalten speichern. Daten immer in der Urform speichern - die spätere Verarbeitung wird es dir danken.
  Was machst du wenn der der 2. Teil auf einmal 4 oder 5 stellig wird? Schon hast du hier ein rießen Problem...
  Dies ist eine Antwort, welche ich von keinem meiner Entwicklern gelten lassen würde. Wenn so etwas endeckt wird, wird versucht die Ursache zu beheben und nicht an den Symtomen herum zu spielen....
  26.06.2019 08:57 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
  War ein Scherz - auch Entwickler brauchen Humor!
  Dieser Wert soll so sein, d.h. Datum am Anfang dann 4 Ziffern (ist so konzipiert das es nicht mehr als 4 sind) und 2 Buchstaben, kann/soll nicht getrennt werden.
  26.06.2019 12:15 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
  Moderationshinweis von gfoidl (26.06.2019 14:35):
  Bitte keine Fullquotes. Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 2.3
  (ist so konzipiert das es nicht mehr als 4 sind) und 2 Buchstaben, kann/soll nicht getrennt werden.
  Nochmals - nur weil es aktuell so ist, sollte man überlegen ob man es nicht doch besser machen kann. Und ja - die Bedingungen mögen aktuell so sein, dies kann sich schnell ändern.
  Ist es echt so schwer, hier einfach sauber zu arbeiten und die Daten in Ihrer Urform in 2 Spalten zu speichern? Damit wäre dein Problem sofort erledigt und deine Anwendung wäre auch für die Zukunft gerüstet... Und sollte eine Funktion die Daten in der aktuellen Form benötigen, kannst du diese im SQL Befehl ganz einfach zusammensetzen...
  Aber egal - es ist deine Anwendung und deine Entwicklung, ich verabschiede mich aus dieser Diskussion, denn meine Bastelzeiten sind schon ein paar Jahre vorbei... Heute versuche ich sauber zu entwicklen und zu arbeiten und nehme gut gemeinte Ratschläge bzw. Hilfestellungen an!
  Dieser Beitrag wurde 4 mal editiert, zum letzten Mal von Stefan.Haegele am 26.06.2019 16:58.
  26.06.2019 16:56 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
  Update: Habe meinen Chef gefragt und bei diesem Eintrag kann die laufende Nummer separat gespeichert werden. Ursprünglich sollte diese Kundennr. en bloc sein.
  27.06.2019 10:52 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
  © Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 20.07.2019 06:59