FireBird Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
파이어버드 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
IBPhoenix
FireBird Main site
볼랜드포럼 광고 모집

FireBird Q&A
[2743] [질문] 무작위(random) 추출 쿼리 관련
최락중 [] 2110 읽음    2008-03-20 14:46
안녕하세요.

테이블에 있는 레코드 중 일부를 무작위로 추출해야 합니다.
Firebird FAQ 사이트에서 검색하니 아래와 같은 예가 있는데요.
ORDER BY 의 조건식이 언제나 0이 되지 않나요?
0을 만들기 위해 이렇게 복잡하게 쓰진 않았을 것 같구요.

아직 DB가 없어 확인해 보진 못했지만, 고수님의 답변 기다립니다.

How to select a random record from a table?

There is no such feature in Firebird, but you can use some tricks. The following example requires that you have a unique integer column (primary key is usually used):

SELECT ...field_list...
FROM table t1
WHERE conditions
ORDER BY (t1.int_col + seed)*4294967291-((t1.int_col + seed)*4294967291/49157)*49157;

If you just need one random record, limit the result set using FIRST or ROWS clause. This query will give consistent records for the same seed. If you wish to be completely random, you need to change the seed. You could use the value of int_col from previous run, or simply fetch a new value from a generator (just make sure the same value for seed is used in both places in expression).

+ -

관련 글 리스트
2743 [질문] 무작위(random) 추출 쿼리 관련 최락중 2110 2008/03/20
2744     Re:[질문] 무작위(random) 추출 쿼리 관련 civilian 2390 2008/03/20
2801         Re:Re:[질문] 무작위(random) 추출 쿼리 관련 최락중 2128 2008/04/22
2803             Re:Re:Re:[질문] 무작위(random) 추출 쿼리 관련 civilian 2309 2008/04/22
2802             Re:Re:Re:[질문] 무작위(random) 추출 쿼리 관련 civilian 2242 2008/04/22
2745         Re:Re:[질문] 무작위(random) 추출 쿼리 관련 최락중 2343 2008/03/20
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.