2014-09-01 4 views
3

ms SQL 서버에서 maxlength 값을 얻을 수있는 방법이 있는지 물어보고 싶습니다. 테이블 A의 예
우리가 가지고SQL 서버에서 최대 길이 값을 얻는 방법

id | value 
----+-------- 
1 |
2 | 00034567 
3 | 547 

이 데이터 세트에 대해 원하는 결과는 내가 나 응답이 선택 받기 문제를 검색 한 어디 00034567.

인 맥스 (LEN (값)) 그것은 가치가 아닌 값 자체의 문자의 최대 개수를 제공하기 때문에 내가 필요로하는 것이 아닙니다.

아이디어가 있으십니까?

답변

3
SELECT TOP 1 t.value 
FROM table AS t 
ORDER BY LEN(t.value) DESC 
+0

답변 해 주셔서 감사합니다. 정확한 결과를 제공합니다 !! – paa

0

당신이 올바른 사용하는 SQL은, U는 길이하여 NVARCHAR에

+0

'u'는 무엇을 의미합니까? – Arvo

+0

잘 그게 아니야? 당신이 필요로하는 것이 34567> 547이라면, 그냥 MAX()를 선택하면 충분하다. – Drakoumel

+0

예 필드에 정수만있는 것이 맞지만, 불행히도이 경우는 아닙니다. 시간 내 주셔서 감사합니다. 제 질문에 답했습니다. 상기 참조하십시오. – paa

0

정렬을 캐스팅하고 첫 번째 행을해야 :

select top 1 value 
from mytable 
order by len(value) desc 

당신이 관계를 원하는 경우 :

select value 
from mytable 
where len(value) = (select max(len(value)) from mytable) 

이상 효율적이지만 SQL Server 관련 :

select value from (
    select value, 
    rank() over (order by len(value) desc) rank 
    from mytable) x 
where rank = 1 

마지막으로 SQLFiddle을 참조하십시오.

+0

답변 해 주셔서 감사합니다. 당신은 내가 얻은 첫 번째 대답으로 동의하고 당신도 맞습니다. – paa

관련 문제