Noob mit Problem - SQL SELECT mit Platzhalter?
Ich komme leider an einem Punkt mit einer Abfrage nicht weiter:
Tabelle
Werte in Spalte1 :
1
2
3
4
...
Werte in Spalte2:
10110
10210
10310
20110
20210
20310
...
Gebe ich ein:
bekomme ich folglich als Ergebnis:
1 , 10110
Wie kann ich es anstellen, dass ich alle Werte aus Spalte2 angezeigt bekomme, wo die ersten beiden und die letzten beiden Ziffern gleich sind?
Also als Wunschergebnis:
1 , 10110
2 , 10210
3 , 10310
Tabelle
Werte in Spalte1 :
1
2
3
4
...
Werte in Spalte2:
10110
10210
10310
20110
20210
20310
...
Gebe ich ein:
SELECT Spalte1, Spalte2 FROM Tabelle WHERE Spalte1 = '1'
1 , 10110
Wie kann ich es anstellen, dass ich alle Werte aus Spalte2 angezeigt bekomme, wo die ersten beiden und die letzten beiden Ziffern gleich sind?
Also als Wunschergebnis:
1 , 10110
2 , 10210
3 , 10310
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 529289
Url: https://administrator.de/contentid/529289
Ausgedruckt am: 22.11.2024 um 07:11 Uhr
23 Kommentare
Neuester Kommentar
Warum soll das dann nicht gehen?
Zitat von @nocheinnoobmehr:
Sorry, ist MSSQL 2014
@emeriks
Geht nicht, weil bei der Abfrage nichts angezeigt wird.
@akretschmer
Für den einen Fall mit der 1 funktioniert es, aber wie z.B. mit der 2?
Sorry, ist MSSQL 2014
@emeriks
Geht nicht, weil bei der Abfrage nichts angezeigt wird.
@akretschmer
Für den einen Fall mit der 1 funktioniert es, aber wie z.B. mit der 2?
da geht das auch. Auch mit der3. Du kannst es testen, es geht auch mit 8. Und 7. Und 9.
Ich glaube, ich muß doch konkreter werden.
Eingabe ist ein EAN13-Code, dem bsp. ein Produkt A 10g mit der Artikelnummer 1001200 zugeordnet ist.
EAN würde ich als EAN speichern, manche Datenbanken haben dafür einen passenden Datentyp, inkl. Prüfzifferberechnung / prüfung.
Sowas sollte man nutzen.
Nun soll aber die Ausgabe alle Produkte ausgeben, die mit Artikelnummer 100 anfangen und mit 200 aufhören.
(Die ersten 3 Stellen sind die Kategorie, 4. Stelle ist die Packungsgröße und die letzten 3 Stellen sind die Produktnummer)
(Die ersten 3 Stellen sind die Kategorie, 4. Stelle ist die Packungsgröße und die letzten 3 Stellen sind die Produktnummer)
Die Lösung wurde genannt.
Sag mal, du verarschst uns jetzt? Oder?
Erst
Erst
Wie kann ich es anstellen, dass ich alle Werte aus Spalte2 angezeigt bekomme, wo die ersten beiden und die letzten beiden Ziffern gleich sind?
Also als Wunschergebnis:
1 , 10110
2 , 10210
3 , 10310
und jetztAlso als Wunschergebnis:
1 , 10110
2 , 10210
3 , 10310
Frage ich z.B. dann 5 ab, sollte die Ausgabe wie folgt sein:
4 , 20110
5 , 20210
6 , 20310
Wieso sollte sie das sein?4 , 20110
5 , 20210
6 , 20310
Zitat von @nocheinnoobmehr:
Spalte1 soll ein eindeutiger Wert sein, wie z.B. eine EAN.
Also müssten bei dir in Spalte1 die Zahlen fortlaufend sein.
Das ändert nichts an den Treffern meiner Abfrage, weil Spalte1 gar nicht im "where" vorkommt.Spalte1 soll ein eindeutiger Wert sein, wie z.B. eine EAN.
Also müssten bei dir in Spalte1 die Zahlen fortlaufend sein.
Genau. Wer lesen kann, wird erkennen, daß Deine Aussagen absolut widersprüchlich sind.
Frage ich z.B. dann 5 ab, sollte die Ausgabe wie folgt sein:
4 , 20110
5 , 20210
6 , 20310
steht in klaren Wiederspruch zu dem, was Du erst wolltest:
alle Werte aus Spalte2 angezeigt bekomme, wo die ersten beiden und die letzten beiden Ziffern gleich sind?
Also als Wunschergebnis:
1 , 10110
2 , 10210
3 , 10310
EOD
Zitat von @nocheinnoobmehr:
Frage ich den Wert 4 in Spalte1 ab, soll die Ausgabe nicht nur 20110 sein, sondern ALLE mit 20 am Anfang und 10 am Ende. Besser verständlich.
Das ist jetzt schon wieder eine andere Bedingung!Frage ich den Wert 4 in Spalte1 ab, soll die Ausgabe nicht nur 20110 sein, sondern ALLE mit 20 am Anfang und 10 am Ende. Besser verständlich.
Sorry, aber ist mir nicht ganz einfach die Problematik zu beschreiben. :/
Offensichtlich. Vielleicht versuchst Du es in 2020 noch einmal? Wenn der Neujahrsrausch ausgeschlafen ist.
Moin,
also wenn ich dich richtig verstanden habe, willst du unter angabe des Wertes aus Spalte A diejenigen finden, die in SPalte B dem selben Muster entsprechen.
Der Weg über ein Join mit sich selbst sollte klappen:
Code ist völlig ungetestet
Fernab:
Kommunikation basiert auf zwei Seiten: dem Sender und dem Empfänger
Wenn der Sender die NAchricht nicht hinreichend eindeutig übermittelt, darf dieser sich nicht beschweren.
Gruß
em-pie
also wenn ich dich richtig verstanden habe, willst du unter angabe des Wertes aus Spalte A diejenigen finden, die in SPalte B dem selben Muster entsprechen.
Der Weg über ein Join mit sich selbst sollte klappen:
SELECT
primaer.*
, sekundaer.*
FROM
yourTable as primaer
INNER JOIN yourTable as sekundaer
on RIGHT(primaer.B, 2) = RIGHT(sekundaer.B, 2) AND LEFT(primaer.B, 2) = LEFT(sekundaer.B, 2)
WHERE
primaer.A = 5
Code ist völlig ungetestet
Fernab:
Kommunikation basiert auf zwei Seiten: dem Sender und dem Empfänger
Wenn der Sender die NAchricht nicht hinreichend eindeutig übermittelt, darf dieser sich nicht beschweren.
Gruß
em-pie
Respekt! Eure Glaskugel ist deutlich leistungsfähiger als meine. Ich denke, dass ich über Euch verstanden habe, was der TO höchstwahrscheinlich will. Und, falls das dann stimmen sollte, dass er offenbar nicht in der Lage ist, das auch nur im Entferntesten zu artikulieren. Meine Fresse ...
Ich will, so mit Spitze, und rund. Aber nicht oben. Und nur gelb und braun. Geht auch rot. Und wie kann ich das anstellen, dass das dann auch heiß geht? Ich meine, ohne das Runde platt zu machen? Vielleicht sogar doppelt?
Ich will, so mit Spitze, und rund. Aber nicht oben. Und nur gelb und braun. Geht auch rot. Und wie kann ich das anstellen, dass das dann auch heiß geht? Ich meine, ohne das Runde platt zu machen? Vielleicht sogar doppelt?