A Readers Story: Connor McDonald on Solving a Sudoku with one SQL Statement

Kim Meijer

The AMIS Technology Blog has reached a milestone and celebrates its 15-year anniversary! Over the past 15 years, we’ve published 3100 articles, written by 120 authors and gathered an international audience of 6000 unique visitors a day.

To reward your loyalty and as part of the celebration we publish several blogs where we put the spotlight on remarkable articles in our 15-year oeuvre. We have asked notable readers and authors about their most valuable, useful, memorable or lifechanging articles.

This month Connor McDonald, Developer Advocate at Oracle Corporation Australia, takes the stage to share his thoughts on an article written by Anton SchefferSolving a Sudoku with one SQL statement (2009)

“As an advocate for SQL for Oracle Corporation, I naturally have a soft spot for any innovative usage of the language to solve problems. SQL is often seen as not being “sexy” because fundamentally it’s most common usage will be in solving the requirements of common business-related tasks; “sales for the year”; “employees hired this month”, and the like. It is often viewed as being the tool to solve the mundane. So, I was intrigued when I got wind of a post by Anton Scheffer with a SQL statement to solve the classic puzzle of Sudoku.”

“It was back in in 2009 for the NoCOUG SQL challenge that the problem-solving capabilities of the recursive WITH statement first revealed themselves to me, but Anton’s solution was perhaps the one that captured the internet with its elegance. The first few times I showed this to friends and colleagues, their initial reaction was typically not amazement but scepticism, because surely with the SQL statement being so concise, this was simply a parlour trick of string manipulation not a true solving of the problem we all spend hours pouring over (most commonly for me on those long flights to conferences!). Such was the level of their doubt. I often needed to remove the terminating condition to show the brute force recursion at work, in order to convince the doubters of the sophistication of Anton’s code.”

“I commonly demonstrate Anton’s SQL in my presentations to display the power of SQL, but I also then comment that obviously as developers, solving Sudoku is unlikely to be one of the core tasks in building of applications. Attendees sometimes interpret this as a criticism of the code, but this is not the case, for it is by exploring the boundaries of functionality possible with SQL that makes all of us better practitioners of the craft.”

Connor McDonald

“And that is what is common for so much of the information I’ve gleaned from AMIS over the years, whether it be their blog posts, attending their presentations, or simply sitting across the coffee table chatting about technology with their employees at conferences. The people at AMIS love to explore, and more importantly, love to share the results of their explorations with the greater technology community. It is little surprise they continue to go from strength to strength.”

“The people at AMIS love to explore, and more importantly, love to share the results of their explorations with the greater technology community. It is little surprise they continue to go from strength to strength.”

Connor McDonald

Huge thanks to you, AMIS Technology Blog reader!

Which article has caught your attention, made an impact on your career, solved problems in an important project or was a remarkable read? Share your thoughts in the comments or feel free to e-mail your story to marketing@amis.nl!

We are very thankful for our worldwide community we’ve build over the past 15 years. Without your enthusiasm, interesting discussions, compassion and love for IT, we couldn’t have pulled this without you!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Next Post

Microservice framework startup time on different JVMs (AOT and JIT)

When developing microservices, a fast startup time is useful. It can for example reduce the amount of time a rolling upgrade of instances takes and reduce build time thus shortening development cycles. When running your code using a ‘serverless’ framework such as for example Knative or FnProject, scaling and getting […]
%d bloggers like this: