2011-08-26 9 views
5
CREATE TABLE TEST (
    customername varchar(50) 
); 

INSERT INTO TEST VALUES('CUSTOMER 1'); 
INSERT INTO TEST VALUES('CUSTOMER 1'); 
INSERT INTO TEST VALUES('CUSTOMER 1'); 
INSERT INTO TEST VALUES('CUSTOMER 2'); 
INSERT INTO TEST VALUES('CUSTOMER 2'); 
INSERT INTO TEST VALUES('CUSTOMER 2'); 

SELECT * FROM TEST ORDER BY ??? 

Cosa clausola ORDER BY devo mettere per ottenere il seguente risultato:?Risultati alternano con clausola ORDER BY

"CUSTOMER 1" 
"CUSTOMER 2" 
"CUSTOMER 1" 
"CUSTOMER 2" 
"CUSTOMER 1" 
"CUSTOMER 2" 
+1

probabilmente si potrebbe trovare un qualche mostruosità orribile che coinvolgono Vars lato server, caso/se strutture, ecc ... ma ... perché? Cosa succederebbe se tu avessi 3 clienti? 4? 5? –

+1

Aggiungi un campo 'sequence' addizionale alla tua tabella che detta la sequenza ... –

+1

Sento che sarebbe meglio ripensare il design del database e cosa vuoi ottenere con esso. – mloskot

risposta

11
SELECT customername 
FROM TEST 
ORDER BY ROW_NUMBER() OVER (PARTITION BY customername ORDER BY customername) 
Problemi correlati