Wow, I’m surprised that SQL hasn’t made it up here yet. Guess that means nobody loves it 🙂
- Inconsistent syntax across implementations
- Subtle code differences can have massive performance ramifications for seemingly obscure reasons
- Poor support for text manipulation
- Easy cost of entry but steep learning curve towards mastering the language
- Minimal standardization across the community for best practices, this includes syntax style.
…And a few bonus reasons to hate it, at no extra charge
- the WHERE clause goes last, making it easy to prematurely execute an UPDATE or DELETE, destroying the whole table. Instead, the WHERE should go somewhere up front.
- It’s difficult to implement relational division.
- I can set a value to NULL, but I can’t test it for equality with NULL. I can check IS NULL, but that just complicates code — needlessly so, in my opinion.
- Why do we need to completely respecify the formula for a GROUPed column, rather than setting an alias on the column and then GROUP BY the alias (or column index as with SORT)?