sélectionner des données randoms à partir d'une list prédéfinie

J'ai une list d'identifiants d'employés, disons:

Q1654 F2597 Y9405 B6735 D8732 C4893 I9732 L1060 H6720 

Ces valeurs ne sont pas dans l'une de mes tables, mais je veux créer une fonction qui ne prendra aucun paramètre et returnnera une valeur random de cette list. Comment puis-je faire ceci?

Sans entrer dans la théorie des nombres randoms, voici une méthode:

http://sqlfiddle.com/#!6/192f2/1/0

il utilise essentiellement la fonction newID pour générer une valeur random puis sortinge en returnnant le premier logging.

Étant donné qu'il doit être dans une fonction et que la fonction ne peut pas utiliser newID … l'insertion d'une vue au milieu élimine le problème.

 Select * into myRand FROM ( SELECT 'Q1654' as val UNION SELECT 'F2597'UNION SELECT 'Y9405'UNION SELECT 'B6735'UNION SELECT 'D8732'UNION SELECT 'C4893'UNION SELECT 'I9732'UNION SELECT 'L1060'UNION SELECT 'H6720') b; Create View vMyRand as Select top 1 val from myRand order by NewID(); CREATE FUNCTION GetMyRand () RETURNS varchar(5) --WITH EXECUTE AS CALLER AS BEGIN Declare @RetValue varchar(5) --@configVar = Select @RetValue = val from vmyRand RETURN(@retValue) END;