Bonjour à tous,

Peut être est ce moi (si c'est le cas soyez clément, mais j'ai demandé à plusieurs collègues avant de venir ici), mais soit la requête suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
SELECT 
	CASE CAST(Round(Rand()*2, 0) AS INT) 
		WHEN CAST(0 AS INT) THEN 'Réservoir du Lard'
		WHEN CAST(1 AS INT) THEN 'Captage du Lard'
		WHEN CAST(2 AS INT) THEN 'Station de pompage des Pierettes' 
		ELSE '???'
	END AS name
J'utilise SQL Server 2008 R2 et cette requête me retourne certaines fois '???'. Est ce normal? Car j'avoue ne pas comprendre pourquoi. Surtout qu'avec cette requête :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
SELECT 
	CASE t.rnd
		WHEN CAST(0 AS INT) THEN 'Réservoir du Lard'
		WHEN CAST(1 AS INT) THEN 'Captage du Lard'
		WHEN CAST(2 AS INT) THEN 'Station de pompage des Pierettes' 
		ELSE '???'
	END AS name,
	Round(Rand() * 100, 2)
FROM (SELECT CAST(Round(Rand()*2, 0) AS INT) as rnd) as t
J'ai bien le fonctionnement attendu et pour moi il n'y a presque aucune différence. Si quelqu'un peut m'expliquer, je suis preneur (disons que j'aimerais comprendre juste par curiosité).

Merci d'avance