MAX/MIN, Scalar vs Aggregate function and NULLs #db2fori #ibmi

This is a note on a surprising difference and kind of a follow-up on a RPGPGM.COM article (so go read it first and put the site in your favorite!). I already commented on it there, but thought it would be worth a small post. Try to guess the result for the following statement, then letContinue reading “MAX/MIN, Scalar vs Aggregate function and NULLs #db2fori #ibmi”

a CONCAT_WS-like on #db2fori #ibmi

In July, I left a position as a data manager on SQL Server (and a bit of MySQL) to start as a database developer on… Db2 … for i. I’m now going through a paradigm shift and transfer some knowledge to the platform. I had a use case for ‘CONCAT_WS‘. Concatenate 0, 1 or moreContinue reading “a CONCAT_WS-like on #db2fori #ibmi”

Multi-Column “Aggregation” MAX(), MIN(), COUNT() & Co with #SQLServer

It’s amazing to see how Microsoft keep on improving T-SQL. I was happily surprised to hear that GREATEST and LEAST are comming to Azure SQL Database from Version 2016 on… however only on Azure SQL. I’m currently ‘stuck’ with SqlServer 2017 on Premise (at least it is not any out of support version, like 2008R2)Continue reading “Multi-Column “Aggregation” MAX(), MIN(), COUNT() & Co with #SQLServer”

IDENTITY crisis — 4. IDENTITY-free #SQL programming

In Part 1 and Part 2, I set the background. In Part 3, I attacked a castle… it is now an infested ruins. We’re now building a better version of it (meeting the specification). Our new castle with relational fortifications. Who told database design is no fun? The environment I’m using a full fledged MicrosoftContinue reading “IDENTITY crisis — 4. IDENTITY-free #SQL programming”

IDENTITY crisis — Part 1: a DISTINCT in disguise

Nothing looks more alike than 2 INT. I wish a warning could come if I ever try to join on 2 columns defined with IDENTITY. This started as a single post. But as I’m redacting, it gets longer. I plan/need to split it in 3 parts. That being said: If you want to make GodContinue reading “IDENTITY crisis — Part 1: a DISTINCT in disguise”

IDENTITY crisis — 2. Death by Surrogate

Nothing looks more alike than 2 INT. I wish a warning could come if I ever try to join on 2 columns defined with IDENTITY. Surrogate: 1 – Developer: 0 We left with … on = … and the query was: In our database on = should be something strange, createContinue reading “IDENTITY crisis — 2. Death by Surrogate”

The clones are attacking

“Do the developers realize that the reason we store data is to report on it ?” Louis Davidson in Episode 178 of SQL Data Partners (around 19min 10sec ) I was faced with this question again as I could only witness the same piece of information inserted in two different tables. I’m not talking aboutContinue reading “The clones are attacking”

A unique error

This weekend, I listened to the SDU Show 81 podcast and the guest was Louis Davidson, the author my favorite SQL Server book. In this podcast, a common SQL anti-pattern came: not covering the natural keys with UNIQUE constraints, only having the surrogate being unique. I could only node in agreement. I take the timeContinue reading “A unique error”