자기 자신의 필드 두개의 값을 . 으로 서로 간에 이어주려고 하는데(예 a,b -> a.b)
어떻게 하나 고민을 하는데.. 어라? where 조건이 optional 이었네?
[ WITH [ RECURSIVE ] with_query [, ...] ] UPDATE [ ONLY ] table [ * ] [ [ AS ] alias ] SET { column = { expression | DEFAULT } | ( column [, ...] ) = ( { expression | DEFAULT } [, ...] ) } [, ...] [ FROM from_list ] [ WHERE condition | WHERE CURRENT OF cursor_name ] [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ] |
[링크 : https://www.postgresql.org/docs/9.1/sql-update.html]
그래서~!
UPDATE table SET column = concat(a,'.',b) WHERE a is not null; |
으로 하니 원하는 대로 값이 있는 녀석들에 대해서만 a.b 식으로 붙여서 새로운 컬럼에 넣어줄 수 있다.
[링크 : https://blog.naver.com/troopa102/120160231056]
생각해보니 게시판 등에서 WHERE를 많이 쓴 이유가
하나의 내용을 수정하기 위함이라 Primary Key를 이용해야 하니
WHERE pk = idx 식으로 고정을 했던거고
나의 경우에는 테이블 전체에 대해서 어떠한 조건에 의해 수정하는 것이기에
수정할 조건(나의 경우에는 not null)로 해주면 자기 자신의 값을 모두 업데이트 할 수 있네?
오.. SQL 신기하고 재미있네 +_+
병렬처리 하는 느낌 좋음 ㅋㅋ
+
2019.09.30
regexp_matches()는 여러줄을 뱉는 애라 update에서 못쓰니
subtring()을 써서 정규표현식으로 자르면 된다고 한다.
'프로그램 사용 > postgreSQL' 카테고리의 다른 글
join where와 on (0) | 2019.09.18 |
---|---|
복수 컬럼에 대한 inner join (0) | 2019.09.18 |
postgresql 정수형에 "NULL"이 null로 인식을 못할때 (0) | 2019.09.18 |
query tweak join vs large table (0) | 2019.09.17 |
postgresql csv import null as null (0) | 2019.09.11 |