생년월일이 있는 컬럼에서요...
19750506 <-- 요런 포멧이어야하는데
750506 , 75.05.06 , 75-05-06 <-- 이렇게된것들이 있어서 검색시 문제가 생겨요.
8자리 숫자로만 된 컬럼 제외하고,
숫자 이외의 문자가 들어가거나(스페이스포함), 숫자이지만 8자리가 아닌것들을 찾아내서 수정하고 싶은데
어떤식으로 조건을 써주면 되나요? ^^
^^;
Sybase를 얼마 다뤄보지 않은 초짜인데 저와 비슷한 고민을 하고계신것 같아 답변을...ㅋ
우선 크게는 두개의 함수를 사용하시면 될 것 같네요.. 그 외에 TRIM정도?
저같은 경우 컬럼이 고정길이문자열로 정의되어서리 TRIM문으로 공백을 없앤 후 사이즈 체크를 했어요
char_length(trim(컬럼명)) < 8
이렇게 해서 사이즈가 8 미만인 걸 걸렀어요..
숫자가 아닌 문자를 걸러내는건 charindex라는 함수를 이용해서 하시면 될 것 같아요. oracle의 instr과 같은 기능의 함수로 알고 있는데
흠.
charindex('-', 컬럼명) > 0
이런식의 조건을 추가해서 걸러내면 될 것 같네요..
여튼 이 함수들을 이용하시면 될 것 같습니다.
도움이 되셨길.. 좋은하루 보내세요~
위의 분의 말씀대로 하심 될것 같고요......
str_replace로 -,.등을 null로 바꾸심 될것 같습니다.
12.5부터는 char_length 대신에 그냥 datalength를 쓰셔도 됩니다.
그리고 15.0.1이상이시라면
isnumeric 함수를 사용하셔도 됩니다....
컬럼에 숫자가 아닌값이 있는 레코드 찾는 것과 동일하군요
create table #temp ( c char(10) null )
insert #temp values ('1111a22222') insert #temp values ('1111322222')
select * from #temp where c like '%[^0-9]%' 숫자 이외의 문자가 있는 레코드를 찾는 쿼리 있니다
trim 안먹히네... 사이베이스에선 trim 안되나요? ^^;
rtrim, ltrim를 사용하면 됩니다. select ltrim( rtrim(" ddd "))