2014-03-06 4 views
0

3 개의 열, b와 c가있는 테이블이 있다고 가정 해 봅시다. 나는 그런 방법으로, 세 개의 값이 테이블을 조회 할 :Sql - 조건부 하위 쿼리

모든 행을 선택합니다 어디 = 값 1

미만 10 개 같은 행이, 그렇지 않으면 그 내의 모든 행을 선택, 사람들을 반환 여기서, C의 값과 3

대한 B 값 = 2

반복은 한 번의 질의 내에이를 수 있는가?

+1

SQL 서버, MySQL의를? – Mihai

+0

숙제의 냄새. – Zane

답변

0

이 (가정 SQL 서버)를보십시오 :

SELECT TOP 10 * 
FROM YourTable X 
ORDER BY (CASE WHEN X.a = value1 THEN 0 ELSE 1 END), 
     (CASE WHEN X.b = value2 THEN 0 ELSE 1 END), 
     (CASE WHEN X.c = value3 THEN 0 ELSE 1 END) 
+1

호기심 많은 사람이 downvoted,이 작동합니다. – EkoostikMartin

+0

감사합니다 - 예, 나는 downvote에 대한 코멘트 주셔서 감사하겠습니다. 나는 이것에 대해 잘못된 것을 보지 않는다. – mayabelle

+0

거의 10 개 이상의 결과가 a 및 b와 일치하는 경우 a, b 및 c와 일치하는 모든 결과가 반환되어야하며, 10을 초과하는 경우에도 예외가 아닙니다. – Abraxas