Wednesday, June 22, 2005

ANSI SQL99 Standard

Given how important the ANSI SQL grammar is to the current SQL RDBMS products, such as Oracle 10g, Microsoft SQL Server 2000, Sybase ASE 12.5.3 & DB2 ESE, I find it surprising how difficult it is to obtain a copy of the standard online (for free that is <g>). I've been looking on and off over the last week or so for a copy online so I can verify which parts of Microsoft's T-SQL implementation are ANSI standard and which aren't. For example, I asked the question in a news://microsoft.public.sqlserver.server thread today (as a tangent to the actual subject of the thread) if the COALESCE() and/or ISNULL() functions were part of the ANSI SQL99 grammar. Tibor Karaszi, SQL Server MVP and associate mentor at Solid Quality Learning (a training/mentoring company that specialises in acquiring the top names in SQL Server), responded that COALESCE() was in the ANSI standard but ISNULL() was a Microsoft specific addition.

How did he know that? Did he fork out the cash to buy the documents from the ISO? Actually, being an MVP he's got access to a little more info than the rest of us (like the developers at Redmond for example) and his colleagues at Solid Quality Learning are gurus, if not legends, in the MSSQL world. He could always have books in his collection such as SQL:1999 - Understanding Relational Language Components by Jim Melton (who I'm sure would have had a genuine copy of the grammar documentation from the ISO). As far as I can tell, if you want a copy of the SQL-99 standards documentation you have to be willing to shell out the Swiss Francs for it.

I think it's a bit disappointing that Microsoft have not included this kind of info in SQL Books Online. (Yes, I found the insert hyperlink button in the blogger wysiwyg editor today.) Just a footnote at the bottom of various topics, such as ISNULL(), to let us know if that language feature is part of the ANSI standard or not. Is that too much to ask? I think SQL Books Online is a brilliant online reference for SQL Server and is always my first port of call when I need to check something SQL Server related, but it's not perfect and I think this kind of "ANSI standard or not" footnote info would be a helpful addition in the next version of BOL.

Looks like I'll be adding a couple Jim Melton titles to my personal library. They'll go well with my Kalen Delaney, Ken Henderson and Jeff Shapiro tomes. I might even pick up a bit of Joe Celko while I'm at it. Now where did I put that corporate AMEX card...


At 24/6/05 18:03, Blogger Mike Hodgson said...

I've since discovered that Jim Melton was part of the team that wrote the SQL-99 standard (and SQL-92 before that), so I guess he should know what he's talking about (and he wouldn't even have to have bought a copy to write his book).

This is from the "About the Authors" section:
Jim Melton is editor of all parts of ISO/IEC 9075 (SQL) and representative for database standards at Oracle Corporation. Since 1986, he has been his company's representative to ANSI NCITS Technical Committee H2 for Database and a US representative to ISO/IEC JTCI/SC32/WG3. He was the editor of SQL-92 and the recently published SQL:1999 suite of standards, and is the author of several SQL books.

At 24/6/05 23:15, Blogger Mike Hodgson said...

Also Tibor later told me that he'd bought several copies (both paper & PDF) of different parts of the ANSI SQL standard documentation. So that's how he knew!

At 27/9/05 22:22, Anonymous Julian Harty said...

Take a look at the following site which seems to have the standard available online and for free.

Or in case the wrap doesn't work: +


Post a Comment

<< Home