Je me demandais simplement si je pouvais obtenir trois résultats aléatoires et les classer dans une autre colonne par ordre alphabétique.
Exemple :
SELECT TOP(3)[Name] FROM Table ORDER BY NEWID() ¿ORDER BY [Surname]?
Merci d'avance.
4 Réponses :
Je ne suis pas sûr de comprendre le problème à 100%, mais avec un deuxième ORDER BY , il triera tous les différents ID.
J'ai fait un CTE pour obtenir ce résultat. p >
WITH CTE AS ( SELECT TOP(3)[Name] FROM Table ORDER BY NEWID() ) SELECT * FROM CTE ORDER BY [Surname]
Merci Arnaud, mais j'ai dû sélectionner, [Nom], [Prénom] pour travailler, mais ça l'a fait, MERCI
Heureux de vous avoir aidé, n'oubliez pas de marquer ceci comme une bonne réponse et un vote favorable pour d'autres personnes.
Avoir une table dérivée (sous-requête) où vous sélectionnez 3 lignes aléatoires. ORDER BY son résultat.
select [Name]
from
(
SELECT TOP(3) [Name], [Surname]
FROM Table
ORDER BY NEWID()
) dt
ORDER BY [Surname]
Vous pouvez essayer ceci.
SELECT T.*
FROM
(
SELECT TOP(3)[Name], [Surname]
FROM Table
ORDER BY NEWID()
) AS T
ORDER BY [Surname];
vous pouvez essayer ceci -
declare @name table
(Name varchar(20), SurName varchar(20))
insert into @name
values
('mukesh', 'arora'),
('amit', 'kumar'),
('Vijay', 'gupta'),
('jai', 'poddar'),
('vishal', 'sharma')
select Name from
(
SELECT TOP(3)[Name] , [Surname]
FROM @name
ORDER BY NEWID()
) a
ORDER BY [Surname]
Avec un TOP, je parie que c'est mssql
J'ai supprimé ces balises dbms en conflit. Remettez-en un, celui des dbms réellement utilisés.
Pourquoi voulez-vous des lignes aléatoires?
@ArnaudPeralta
TOPest une expression SQL standard. C'estNEWID ()qui est spécifique à SQL Server@PanagiotisKanavos -
TOPn'est pas pas le SQL standardTOPn'est pas SQL standard ...FETCH FIRSTest la manière ANSI SQL!@jarlh j'oublie toujours ça! Chaque décennie, la même chose.
Et nous sommes presque à la fin de cette décennie, donc à la même époque l'année prochaine? :-)