2012-07-05 3 views
13

문자열이 12 문자가 아닌 필드를 잡는 SQL 문을 작성하는 방법을 찾으려고합니다. 10자인 경우에만 문자열을 잡고 싶습니다.DB2 텍스트 문자열 길이를 결정하십시오.

DB2에서 어떤 기능을 수행 할 수 있습니까?

나는 이런 식으로 생각했지만, 나는 그것에 대해 아무것도 찾을 수 없습니다.
select * from table where not length(fieldName, 12)

+0

기다림 - 데이터에 ** 특정 ** 열 ('필드')에 포함 된 데이터가 10 자 이상이거나 ** 알 수 없음 * * 열의 모든 값 (또는 열 이름)이 10자인 모든 행의 열? –

+0

ID 번호 열에서 모든 행을 가져오고 싶습니다. 일부 ID 번호는 10 자리 숫자이고, 일부 숫자는 9이며, 일부 ID는 12입니다. 12 자리 숫자를 제외한 모든 ID 번호를 원합니다. – Frantumn

+0

열이 실제로 숫자 형식입니까, 아니면 Id에 숫자 문자를 사용하고 있습니까? 실제로 숫자 열인 경우 단순한 숫자 비교를 수행하십시오. 숫자가 포함 된 문자열 인 경우 앞에 0이 없어야합니다. –

답변

21

이 긴 10 개 문자입니다 (fieldName에 열에서) 문자열 레코드 사로 잡고 :

select * from table where length(fieldName)=10 
+0

또한 확인하십시오. http://www.ibm.com/developerworks/data/library/techarticle/dm-0705nair/ - 문자열 길이를 결정하는 것이 때때로 까다로울 수 있습니다. –

22

비슷한 질문 DB2 - find and compare the lentgh of the value in a table field에서이 - 길이가 열 정의의 길이를 반환하기 때문에 RTRIM을 추가합니다.

select * from table where length(RTRIM(fieldName))=10 
+1

이것은 속임수입니다! OP의 요청과 같이 문자열의 길이가 아닌 실제 문자열의 길이를 가져옵니다. –

+1

이 답변이 올바른 답변입니다. – numsu

관련 문제