SQL Puzzle 2: Eight Queens

This puzzle was first proposed in 1848 by a composer of chess puzzles called Max Bezzel and has since spawned much analysis and many variants. Simply phrased, it goes as follows:

“Can you place 8 queen’s on a standard (8×8) chessboard so that no two queen’s threaten each other?”

(Just in case, I’ll remind you a queen can move and attack any number of squares in a straight line –  horizontally, vertically, or diagonally)

Here’s one example solution:

8queens

By all means have some fun trying to find extra solutions to this with pencil and paper or chessboard, however we do have computers (and SQL!) these days, so this month’s challenge is to try find ALL the possible solutions to this puzzle using T-SQL.

I’m a bit of a closet chess enthusiast, so expect more in this theme!

Enjoy 🙂

7 thoughts on “SQL Puzzle 2: Eight Queens

  1. Question: When I mirror your solution (horizontal or vertical) is that a new (or even two new) solution or not?

    1. I wanted to keep it simple so didn’t mention reflections and rotations. Yes, I’d consider those a solution, but potentially there are two answers to the puzzle – how many solutions in general, and how many if reflections and rotations are removed.

  2. Several years ago I came across this puzzle. I found the solution manually. Then, one day I thought of solving it using tSQL. I was able to find all permutations that include reflections and rotations, a total of 92. I think there could be a better way to solve it. I just use the simplest method I could, not the efficient one. Here is the final result:
    Cell_1 Cell_2 Cell_3 Cell_4 Cell_5 Cell_6 Cell_7 Cell_8
    1 5 8 6 3 7 2 4
    1 6 8 3 7 4 2 5
    1 7 4 6 8 2 5 3
    1 7 5 8 2 4 6 3
    2 4 6 8 3 1 7 5
    2 5 7 1 3 8 6 4
    2 5 7 4 1 8 6 3
    2 6 1 7 4 8 3 5
    2 6 8 3 1 4 7 5
    2 7 3 6 8 5 1 4
    2 7 5 8 1 4 6 3
    2 8 6 1 3 5 7 4
    3 1 7 5 8 2 4 6
    3 5 2 8 1 7 4 6
    3 5 2 8 6 4 7 1
    3 5 7 1 4 2 8 6
    3 5 8 4 1 7 2 6
    3 6 2 5 8 1 7 4
    3 6 2 7 1 4 8 5
    3 6 2 7 5 1 8 4
    3 6 4 1 8 5 7 2
    3 6 4 2 8 5 7 1
    3 6 8 1 4 7 5 2
    3 6 8 1 5 7 2 4
    3 6 8 2 4 1 7 5
    3 7 2 8 5 1 4 6
    3 7 2 8 6 4 1 5
    3 8 4 7 1 6 2 5
    4 1 5 8 2 7 3 6
    4 1 5 8 6 3 7 2
    4 2 5 8 6 1 3 7
    4 2 7 3 6 8 1 5
    4 2 7 3 6 8 5 1
    4 2 7 5 1 8 6 3
    4 2 8 5 7 1 3 6
    4 2 8 6 1 3 5 7
    4 6 1 5 2 8 3 7
    4 6 8 2 7 1 3 5
    4 6 8 3 1 7 5 2
    4 7 1 8 5 2 6 3
    4 7 3 8 2 5 1 6
    4 7 5 2 6 1 3 8
    4 7 5 3 1 6 8 2
    4 8 1 3 6 2 7 5
    4 8 1 5 7 2 6 3
    4 8 5 3 1 7 2 6
    5 1 4 6 8 2 7 3
    5 1 8 4 2 7 3 6
    5 1 8 6 3 7 2 4
    5 2 4 6 8 3 1 7
    5 2 4 7 3 8 6 1
    5 2 6 1 7 4 8 3
    5 2 8 1 4 7 3 6
    5 3 1 6 8 2 4 7
    5 3 1 7 2 8 6 4
    5 3 8 4 7 1 6 2
    5 7 1 3 8 6 4 2
    5 7 1 4 2 8 6 3
    5 7 2 4 8 1 3 6
    5 7 2 6 3 1 4 8
    5 7 2 6 3 1 8 4
    5 7 4 1 3 8 6 2
    5 8 4 1 3 6 2 7
    5 8 4 1 7 2 6 3
    6 1 5 2 8 3 7 4
    6 2 7 1 3 5 8 4
    6 2 7 1 4 8 5 3
    6 3 1 7 5 8 2 4
    6 3 1 8 4 2 7 5
    6 3 1 8 5 2 4 7
    6 3 5 7 1 4 2 8
    6 3 5 8 1 4 2 7
    6 3 7 2 4 8 1 5
    6 3 7 2 8 5 1 4
    6 3 7 4 1 8 2 5
    6 4 1 5 8 2 7 3
    6 4 2 8 5 7 1 3
    6 4 7 1 3 5 2 8
    6 4 7 1 8 2 5 3
    6 8 2 4 1 7 5 3
    7 1 3 8 6 4 2 5
    7 2 4 1 8 5 3 6
    7 2 6 3 1 4 8 5
    7 3 1 6 8 5 2 4
    7 3 8 2 5 1 6 4
    7 4 2 5 8 1 3 6
    7 4 2 8 6 1 3 5
    7 5 3 1 6 8 2 4
    8 2 4 1 7 5 3 6
    8 2 5 3 1 7 4 6
    8 3 1 6 2 5 7 4
    8 4 1 3 6 2 7 5

    Each column represent a corresponding column of a chess board. Each row represents the row number in that column where a queen should be placed. Each row is a solution to the puzzle.
    If anyone is interested, I can post the actual script here.
    Thanks for bringing up this topic. I am also a chess enthusiast though I have not played it in a long while. I will certainly be interested in other puzzles, specially chess puzzles.
    kr.

Leave a Reply