2013-09-25 4 views
1

ID, 이름 및 레벨 열이있는 테이블이 있습니다.이 패턴으로 테이블 레코드를 선택하고 싶습니다. 먼저 무작위로 선택한 다음 임의의 레코드를 레벨 열로 정렬하십시오.무작위로 선택하고 레코드 정렬

예를 들어

: 내 샘플 테이블 및 기록 :

ID  name   Level 
--------------------------------- 
1  red-book   1 
2  blue-pen   10 
3  black-board  12 
4  balck-Book  1 
5  white-book  1 
6  red-pen   10 
7  green-pen  10 

그리고 결과가 같은 것을해야한다 : 나는 또한

SELECT * FROM MyTable ORDER BY NEWID(),Level DESC 

그리고

을 사용했습니다

ID   name    level 
------------------------------------------ 
3    black-board  12 
6    red-pen   10 
2    blue-pen   10 
7    green-pen  10 
4    balck-Book  1 
1    red-book   1 
5    white-book  1 

SELECT * FROM 
(SELECT * FROM MyTable ORDERBY NEWID())As TempTbl 
ORDER BY Level DESC 
012 3,516,

그리고

CREATE TABLE #MyTempTable (ID INT,name Nvarchar(256),Levels INT) 

INSERT INTO #MyTempTable SELECT * FROM MyTable ORDER BY NEWID() 

SELECT * FROM #MyTempTable ORDER BY Levels DESC 
+1

그래서 당신의 질문은 당신이 무엇을 시도? –

+0

그리고 어떤 데이터베이스를 사용하고 있습니까? –

+1

그리고 모든 레코드를 임의로 선택하고 내림차순으로 레벨을 정렬하면 어떤 이점이 있습니까? 간단한 'SELECT * FROM table ORDER BY 수준 DESC;'처럼 들리지만, 나는 "무작위"부분을 이해하지 못합니다. –

답변

2
SELECT ID,name,level 
FROM sample 
ORDER BY level DESC,NEWID() 
+0

"SELECT * FROM table ORDER BY NEWID(), Levels DESC"와 똑같은 결과가 나에게 똑같이 나타납니다! ID 열을 정렬합니다. – MortezaJ

+0

'RAND()'는 SQL Server에서 행당 하나가 아닌 명령문마다 한 번만 평가되므로 작동하지 않습니다. –

+0

레벨 내림차순으로 내 쿼리 주문. 레벨마다 데이터가 임의로 정렬됩니다. 이것이 당신이 원하는 것이 아니라면, 그 질문은 불분명합니다. – Wietze314

관련 문제