Postgresql 대소문자 변형 쿼리 질문드립니다! 0 3 3,164

by 커피는스벅 [SQL Query] postgresql 쿼리 update [2017.10.11 13:41:17]


해당 쿼리를 짜는데 막히고 있어서 질문드립니다ㅠㅠ

 

한 컬럼 안에 다양한 형태로 데이터가 들어가 있습니다.

ex)

이름 ID
가가가 11111111
나나나 22R22222
다다다 11H33333
라라라 55555555

위처럼 ID의 값이 숫자만 들어있는 것이 있고,

숫자 두개 후 대문자영어 숫자 다섯개 => _ _ A _ _ _ _ _

이러한 형식에서 영문을 소문자로 업데이트 하고 싶습니다 => _ _ a _ _ _ _ _

위 표를 변경하자면

이름 ID
가가가 11111111
나나나 22r22222
다다다 11h33333
라라라 55555555

이렇게 다른 조건은 건드리지 않고

숫자 두개 후에 대문자 영문이 나왔을 경우 소문자 영문으로 업데이트를 하려고 합니다 ㅠㅠ

고수님들 도움 부탁드리겠습니다!

by 마농 [2017.10.11 13:55:46]
UPDATE t
   SET id = LOWER(id)
 WHERE TRANSLATE(id, 'a0123456789', 'a') IS NOT NULL
;

 


by 주킹 [2017.10.11 14:09:30]

숫자 두개 후에 3번째 위치일경우만 필요하신거면 마농님것을 응용해서

UPDATE tab2
   SET id = LOWER(id)
 WHERE  position(TRANSLATE(id, 'a0123456789', 'a') in id)=3
;
이와 같이 가능합니다.


by 커피는스벅 [2017.10.17 09:40:22]

답변 감사드립니다..!

근데 이 쿼리를 돌리게 되면 3번째에 대문자 알파벳이 들어가 있는 행 전체의 데이타가 삭제가 됩니다ㅠㅠ

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입