Grundsätzlich ist ja erstmal die Frage wie "groß" dein Bingofeld ist. 3x3, 4x4, etc.
Das muss natürlich vorher festgelegt werden. Und dann kannst du die Bingos definieren. Also (0|0 0|1 0|2), (1|0,1|1,1|2), etc. (für die Folgetests)
Dann noch etwas Hirnschmalz rein, also nur die erste Reihe horizontal und vertikal testen, wenns da kein Match gibt, aufhören -> kein Bingo
Ansonsten die Laufrichtungen runter.
Wenn Ecke alle 3, ansonsten runter bzw. nur längs, und weiter gucken ob im angenzenden Feld Match (erhöhen der der ersten Zahl bzw, der zweiten oder beide).
Ob du das mit ner StoredProcedure machst oder die die Daten einmalig in einen 2-dimensionales Array ausliest (bei einem Spiel) oder sogar 3-dimensional (für alle Spiele) hängt nur bedingt an der Performance (die Statements werden dadurch auch nicht kleiner).
Kommt eben drauf an, wie groß die Tabelle ist, ob es eine Live-Überwachung sein soll, etc...