Il y’en a pour tout le monde des TSQL challenge !!! Ceux-ci sont plutôt destinés aux débutants désirants améliorer leur connaissance du langage SQL. Le TSQL Challenge 13 pour débutant consiste à valider des valeurs de type GUID en comptant horizontalement et verticalement les caractères « 1, 2, 3, 4, 5, A, B, C, D, E ».
La définition d’un GUID valide est la suivante : Un GUI doit contenir l’ensemble des caractères 1, 2, 3, 4, 5, A, B, C, D, E.
Par exemple pour « 7FC61235-F252-4E32-BD31-99FB1FC8A574″, tous les caractères cités ci-dessus sont présents tandis que dans « 7FX61235-X252-4Y32-BZ31-99FB1FC8Z574″ certains d’entre eux sont absents. Le programme doit donc accepté seulement la chaîne « 7FC61235-F252-4E32-BD31-99FB1FC8A574″.
Règles importantes à respecter
- Le résultat doit être classé dans l’ordre ascendant des GUID valides
- Il faut considérer le comptage des caractères 1,2,3,4,5,A,B,C,D,E uniquement
- Le résultat doit être formaté de la façon suivante :
ValidGuid                           1 2 3 4 5 A B C D E H Sum
------------------------------------ - - - - - - - - - - -----
7FC61235-F252-4E32-BD31-99FB1FC8A574 3 4 3 2 3 1 2 2 1 1 22
D031BC00-ADD3-4C40-BE24-A613586FD42C 2 2 3 4 1 2 2 3 4 1 24
Vertical Sum                        5 6 6 6 4 3 4 5 5 2 46
- Le programme doit être composé d’une seule requête commençant soit par l’instruction SELECT soit par WITH. Aucune variables, tables temporaires ou variables de tables ne sont acceptées
- Il n’est pas possible d’utiliser les RBAR, curseurs, boucles . dans le code
- La solution doit fonctionner pour SQL Server 2005 et plus
Note : pour ceux ou celles qui ne seraient pas à l’aise avec l’anglais n’hésitez pas à me faire remonter vos questions sur ce billet.
Bon amusement !!
David BARBARIN (Mikedavem)
Elève ingénieur CNAM Lyon
MVP SQL Server