안녕하세요!
눈팅만 하다 궁금한게 있어서 이렇게 문의 드립니다.
별거 아닌거 같지만 저에겐 이해하기가 힘든 부분이라 뭐가 잘 못 된건지 봐 주셨으면 합니다.
1. Select TOP 10 cm_idx From business where 1=1
2. Select TOP (2 - 1) * 10 cm_idx From business where 1=1
위 처럼 두개의 쿼리가 있습니다.
둘다 서브쿼리구요.
근데 둘을 실행해 보면
1은 잘 나오는데
2가 '(' 근처의 구문이 잘못되었습니다. 라는 에러를 뱉어 냅니다.
제 눈으로 보기엔 둘다 같은거 같은데 말이죠.
둘이 틀린점이 무엇인지 짚어 주실수 있나요?
참 DB는 ms-sql 2000 버전8.0입니다.
기온차가 심합니다. 감기 조심하세요.
Comment 5
-
Hisory
2014.09.12 17:50
-
군고구마
2014.09.12 18:22
이런 방법이 !?
-
미라클
2014.09.12 19:44
그렇게도 해 봤는데... 결과는 같았습니다. ^^;
아무래도 top에 연산적용이 안되는거 같습니다.
기본적으로 Select TOP (1*10) * From Table명 으로 해도 똑같은 에러가 나더군요.
-
Hisory
2014.09.12 20:54
sql 버젼에 따라 적용이 안되는 부분은 있습니다.
아마도 2005를 사용하고 있지 않을까 싶네여..
-
미라클
2014.09.13 21:37
아~
제가 글 말미에 ms-sql 2000이라고 적어 놓았는데 못 보신듯 합니다. ^^
그럼 2005이하 버전은 저런 연산이 안된다고 보면 되겠군요.
감사합니다.
Select TOP ((2 - 1) * 10) * From 테이블명