자기 자신의 필드 두개의 값을 . 으로 서로 간에 이어주려고 하는데(예 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()을 써서 정규표현식으로 자르면 된다고 한다.

[링크 : https://stackoverflow.com/questions/936513/postgresql-query-to-update-fields-using-a-regular-expression]

'프로그램 사용 > postgreSQL' 카테고리의 다른 글

join where와 on  (0) 2019.09.18
복수 컬럼에 대한 inner join  (0) 2019.09.18
postgresql update  (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
Posted by 구차니

댓글을 달아 주세요