3 ms·
That is quite a hyperbolic statement and I have to disagree with you. I've used SQL on a variety of databases over 15 years, and yes while some like MySQL have
by RoyTyrell 3y ago
That is quite a hyperbolic statement and I have to disagree with you. I've used SQL on a variety of databases over 15 years, and yes while some like MySQL have poorly implemented anything other than basic SQL/RDBMS features, most are very similar in feature sets. There are vendors-specific additional features like how Oracle supports hierarchical queries with CONNECT, but you don't have to use them.
- CTEs are very close if not the same across Oracle, PostgreSQL, DB2, Hive, Snowflake, and MS SQL Server - I believe even Sybase too but it's been a while. - Joins work all largely the same even though a couple of those support additional join types, especially when you want to join on functions that return data sets.
- Window functions are supported by every major DB with similar or the same syntax too. Any differences take 5sec to lookup in documentation.
My only complaint is loading data is highly vendor specific.
- bradford 3y agoI used SQL in various implementations for about 15 years. I didn't find much fault in it until I started using KQL (the language which seems to have inspired Pql). The difference in enjoyability is stark: I truly hate SQL now. More robust criticism is provided here (https://carlineng.com/?postid=sql-critique#blog https://carlineng.com/?postid=sql-critique#blog). The quote I usually drag out is from Chris Date, who helped pioneer relational DBs: "At the same time, I have to say too that we didn’t realize how truly awful SQL was or would turn out to be (note that it’s much worse now than it was then, though it was pretty bad right from the outset)." https://www.red-gate.com/simple-talk/opinion/opinion-pieces/chris-date-and-the-relational-model/ https://www.red-gate.com/simple-talk/opinion/opinion-pieces/...
- ttfkam 3y agoFor example, why not allow the following expression as a legal statement: tablename; FYI, in Postgres you can write TABLE tablename;
- ttfkam 3y agoMySQL has supported CTEs since v8.0. Sadly, still no support for RETURNING though, which limits their usefulness, but it does in fact support CTEs now.