2010-07-27 2 views
1

의 내가 다음과 같이 보이는 쿼리 결과가 있다고 가정 해 보자 : 나는 각각의 ID 값의 단 하나의 행 인스턴스를 반환 할동일한 ID로 여러 행의 첫 번째 행 (또는 고유 행)을 어떻게 선택합니까?

ID NAME Phone 
---- ---- ----- 
1  Bob  111-111-1111 
1  Bob  222-222-2222 
1  Bob  333-333-3333 
2  Stan 555-555-5555 
3  Mike 888-888-8888 
3  Mike 777-777-7777 

. 나에게 여러 행 중 어느 것이 중요합니까? 세트의 첫 번째 행은 괜찮습니다.

그래서 가능한 결과는 다음과 같습니다 SQL 서버 [편집]와 MS 액세스를 들어

ID NAME Phone 
---- ---- ----- 
1  Bob  111-111-1111 
2  Stan 555-555-5555 
3  Mike 888-888-8888 
+0

어떤 RDBMS를 사용하고 있습니까? –

+0

@Tom - 지금 당장 2010에 액세스하십시오. (예, 당혹 스럽 습니다만) 제 질문은 가능한 한 일반적인 것입니다. – Howiecamp

+2

ㅎ ... 당혹 스러울 이유가 없어. 액세스가 작업에 적합한 도구 일 때가 있습니다. :) –

답변

7

, 당신은

SELECT [ID], [Name], MIN(Phone) as PhoneNumber 
FROM PhoneNumbers 
GROUP BY [ID], [Name] 

을 할 수있는이 반환됩니다

ID NAME Phone 
---- ---- ----- 
1  Bob  111-111-1111 
2  Stan 555-555-5555 
3  Mike 777-777-7777 

테이블에 일종의 독특한 키를 추가하는 것이 좋습니다.

+0

감사합니다. 이것은 테이블이 아니라 이전 쿼리의 결과입니다. 나는 이것을 빨리 시험해 볼 것입니다 ... – Howiecamp

+0

great, thank you. – Howiecamp

+0

Min()의 대안은 Max(), First() 및 Last()입니다. 후자 2 개는 정렬 순서에 따라 다른 데이터를 반환합니다. –

1

첫 번째 결과가 나온 T-SQL 문을 제공하고 원하는 결과를 얻기 위해 다시 작성하는 방법에 대한 정보를 제공하면 방향을 제시 할 수 있습니다.

+0

여러 가지 방법으로이 결과 집합에 도달 할 수 있기 때문에 중요하지 않아야한다고 생각했습니다. 나는이 시점에서 앞으로 나아갈 필요가있다. – Howiecamp

관련 문제