Name
및 Code
두 개의 문자열 열이있는 테이블이 있습니다. Code
은 고유하지만 Name
은 고유하지 않습니다. 샘플 데이터 : 나는 독특한 작은 Code
값을 가진 행,하지만 숫자 값의 측면에서을 선택합니다최소 길이 값을 가진 행만 선택하여 중복 행 제거
Name Code
-------- ----
Jacket 15
Jeans 003
Jeans 26
; 오히려 문자열의 길이. 물론이 작동하지 않습니다
SELECT Name, Min(Code) as Code
FROM Clothes
GROUP BY Name, Code
위의 코드는 같은 청바지 하나 개의 행을 반환합니다
때문에 숫자로, 올바른Jeans | 003
, 003
는 26
이하이다. 그러나 실제 가치가 아니라 가치의 길이에 관심을 갖는 제 신청서에는 없습니다. 길이가 3자인 값은 2자를 갖는 값보다 큽니다. 나는 실제로이를 반환해야합니다 26
의이 길이 003
의보다 짧은
Jeans | 26
길이 때문입니다.
그래서 실제 최소값이 아닌 최소 길이의 코드를 가진 행을 선택할 SQL 코드를 어떻게 작성합니까? 나는이 일을 시도 :
SELECT Name, Min(Len(Code)) as Code
FROM Clothes
GROUP BY Name, Code
을 나는이와 끝까지 그래서 위의 단 하나의 문자 나 반환
당신이 코드 필드의 숫자 값을 정렬하려고하는 것 소리Jeans | 2
@Malachi, 그건 끔찍한 편집이다. 그는 길이가 최소 인 것을 원하며 3 자리 숫자의 * 예제 *를 사용한다고 말하고 있습니다. 그가 '00005'와 '5555'라는 코드가있는 다른 종류의 옷을 가지고 있다면 그는 4 자리 숫자로 된 옷을 원할 것입니다. 시도해 보지 말고 OP에 대해 생각해보십시오. 편집은 거절되어야하지만 분명히 세 명의 승인자가주의를 기울이지 않았습니다. 또한 첫 번째 단락을 제거하지 않는 이유는 무엇입니까 ??? –
동의합니다. 사과드립니다. 가장 중요한 것은 OP가 코드 길이가 데이터의 표준보다 적은 코드를 찾으려고한다는 것이 사람들에게 충분히 분명하지 않다는 것입니다. 나는 선들 사이를 읽었고 주어진 정보를 토대로 그 점을 명백하게 만들었다 고 생각했습니다. 주어진 편집 결과가 정확하게 표시됩니다. – Malachi