SQL Grundlagen – Teil 2

Natürlich kann SQL noch viel mehr als nur die Standard Selects, wie ich schon im ersten Teil gezeigt habe. Doch es gibt auch noch GROUP BY und ORDER BY.
Wie die Namen schon sagen kann man mit GROUP BY Spalten gruppieren und mit ORDER BY dann auch noch gruppieren.
Mal angenommen wir haben folgende Abfrage:
SELECT ap.Artnr, ap.Bezeichnung, sum(isnull(ap.menge,0))
FROM Auftragposition ap
GROUP BY ap.Artnr, ap.Bezeichnung

Dann wird das SQL Server Management Studio anmerken, dass ein GROUP BY fehlen würde, wenn man es weglässt. Der Grund liegt hierbei, dass wir eine Aggregatfunktion verwenden. Nämlich die Funktion sum(WERT). Damit werden bestimmte Felder summiert.
sum(isnull(ap.menge,0)) besteht in diesem Fall sogar aus zwei Funktionen. Einmal die isnull(ap.menge,0) welche prüft ob das Feld ap.menge NULL also damit leer ist und ersetzt die Menge in diesem Fall durch eine 0. Die 0 ist immerhin ein Wert und kann addiert werden. Diese Funktion ist in die sum() eingebunden.
Die Abfrage wird mir also alle Auftragspositionsmengen gruppiert nach der Artikelnummer und der Bezeichnung ausgeben. Da die Artikelnummer und die Bezeichnung in den allermeisten Fällen immer gleich ist, wird also pro Artikelnummer eine Zeile mit der summierten Menge ausgegeben werden.

Nun kann es aber natürlich auch sein, dass die Ausgabe doch etwas unsortiert herauskommt. Beispielsweise die Artikel 42, danach die 92 und dann die 23. Diese Ausgabe lässt sich natürlich auch ordnen. Dafür setzen wir einfach noch den ORDER BY Befehl drunter und die Abfrage sieht wie folgt aus:
SELECT ap.Artnr, ap.Bezeichnung, sum(isnull(ap.menge,0))
FROM Auftragposition ap
GROUP BY ap.Artnr, ap.Bezeichnung
ORDER BY ap.Artnr

Somit haben wir nun eine eine Ausgabe mit dem summierten Mengen pro Artikelnummer und werden die Ausgabe nach der Position geordnet vorfinden. Mit den Wörtern desc bzw. asc hinter dem Feld in ORDER BY kann man noch bestimmen ob absteigend oder aufsteigend sortiert werden soll.

Kommentar zu Log4j: Es funktioniert wie spezifiziert

Dieser Heise Kommentar zu Log4j ist einfach genial geschrieben. Er bestätigt allerdings auch meine ganze Vorbehalte zu Java. Das Teil hat mich jahrelang als Admin genervt. Ständig Updates der Runtime und damit es läuft muss man immer diese Runtime dabei haben. Der einzige Vorteil war aber tatsächlich, diese Runtime ist für alle gängigen Betriebssysteme verfügbar. Aber so richtig warm bin ich mit Java trotzdem nie geworden.
Dafür ist .NET mit C# sicherlich auch nicht besser. Es lief zumindest bis .NET Core ausschließlich auf Windows. Dafür aber recht zuverlässig und recht angenehm. Und wenn ich mir so den Heise Kommentar durchlese, war es definitiv keine schlechte Idee auf C# zu setzen. Das war und ist um einiges durchsichtiger welcher Code verwendet wird und welcher nicht.
Java ist eine Insel und sicherlich auch eine schöne. Aber als Programmiersprache könnte man das gerne mal ablösen. Rust soll auch sehr schön sein hab ich gehört. :D

NSO Pegasus iPhone Exploit

Der NSO Exploit für das iPhone ist tatsächlich technisch echt beeindruckend gelöst. Ich sag mal so: Ein NAND Gatter zum Ausführen von Code innerhalb eines Buffer Overflows ist wirklich hart beeindruckend. Mehr findet sich auch in diesem Heise Kommentar dazu.

Ich finde aber auch die Erklärung von Linus und Tim sehr schön auf den Punkt gebracht in der Logbuch Netzpolitik Folge. Einfach dort den Player starten und man hört direkt ab dem NSO Kapitel.

Der Xerox Vortrag ist natürlich auch weiterhin passend dazu:

Tweet zu log4j

Wenn man die aktuellen Beiträge zu den Corona Leuten verfolgt gibt es immer einige Argumente, die nur nervig sind. Manche Argumente sind einfach hannebüchen. Wenn man diese nun auch auf die IT anwenden würde, sähe das in etwa so aus. ;)

Und noch einen Link zu allen log4j Memes.

Dependency XKCD aktualisiert

Jemand im Internet hat dieses Bild vom xkcd Comic aktualisiert. Und ich finde es klasse, weil es einfach sehr gut passt.
Man merkt es aktuell ja besonders bei der log4Shell Sicherheitslücke. Darüber hab ich hier ja schon ausführlich geschrieben.Genau für solche Dinge liebt man das Internet. Bei allen Lücken gibt es immer noch jemand, welcher das Ganze mit Humor auffasst und dazu lustige Bilder publiziert. :D