Je peux facilement obtenir un enregistrement aléatoire d'aujourd'hui avec ceci:Sql Server 2005: les enregistrements aléatoires
SELECT * FROM MyTable ORDER BY NewId()
Je peux facilement obtenir un enregistrement avec « date d'aujourd'hui » avec ceci:
SELECT * FROM MyTable WHERE MyDate = "2010-24-08" -- db doesn't store times
Mais comment est-ce que je combinerais les deux?
Obtenez 1 enregistrement aléatoire ... n'importe quoi avec la date d'aujourd'hui.
Si aucun n'est trouvé ... obtenir 1 enregistrement aléatoire d'hier (aujourd'hui-1).
Si aucun ne trouve ... obtenir 1 enregistrement aléatoire de etc, etc, aujourd'hui-2
... jusqu'à 1 enregistrement est trouvé.
une meilleure implémentation de ce que j'allais faire. – DForck42
Que faire si aucun enregistrement de "2010-24-08" dans le tableau comme mentionné dans la question. – Kashif
@Muhammad Kashif Nadeem: Aucune ligne - 'TOP', comme MySQL et PostgreSQL' LIMIT', ne contraint que le nombre de lignes renvoyées par le resulset. –