1. 테이블에서 전체의 100분의 1 즉, 1%만 보겠다는 쿼리문

1
2
3
4
5
6
SELECT TOP(SELECT COUNT(*)/100 FROM Sales.CreditCard)
CreditCardID
FROM Sales.CreditCard
WHERE CardType = 'Vista'
ORDER BY ExpYear, ExpMonth
 
cs


COUNT(*)는 행의 개수를 반환하는 함수이다.


2. 다른 예로 전체 상위 건수의 0.1%만 출력하는 쿼리문이다.

그럴경우 TOP(N)PERCENT 를 사용하면 된다.

1
2
3
4
SELECT TOP(0.1)PERCENT CreditCardID FROM Sales.CreditCard
WHERE CardType = 'Vista'
ORDER BY ExpYear, ExpMonth
 
cs


3. WITH TIES 옵션

마지막 출력값과 동일한 값이 있는데 N%가 넘더라도 출력하는 옵션에는 WITH TIES 옵션이 있다.
만약 내가 출력하고싶은 조건에 해당하는 값이 5개인데 0.1프로가 4개라면 5개째는 출력되지않을 것이다. 그럴때 사용한다.

1
2
3
4
SELECT TOP(0.1)PERCENT WITH TIES CreditCardID, ExpMonth, ExpYear FROM Sales.CreditCard
WHERE CardType = 'Vista'
ORDER BY ExpYear, ExpMonth
 
cs