
PostgreSQL์์๋ NULL๊ณผ ''(๋น ๋ฌธ์์ด)์ ๋ค๋ฅด์ง๋ง,
Oracle์์๋ ๋์ผํ๊ฒ ์ทจ๊ธ๋๋ค.
SELECT '', NULL;
NULL ๊ฐ์ ํน์ ๊ฐ์ผ๋ก ๋์ฒดํ ๋ COALESCE๋ฅผ ์ฌ์ฉํ๋ค.
SELECT COALESCE('', '123'), COALESCE(NULL, '123');
-- ๊ฒฐ๊ณผ: '', '123'
์ฟผ๋ฆฌ์์ numeric ํ์ ์ผ๋ก ๋ณํํ ๋ ::numeric์ ์ฌ์ฉํ๋ค.
SELECT (concat('0', '')::numeric);
SELECT (concat('0', null)::numeric);
MyBatis ์์
SELECT (concat('0', #{ my_num })::numeric);
SELECT regexp_replace('010-5555-7777', '\D+', '', 'g');
-- ๊ฒฐ๊ณผ: '01055557777'
SELECT regexp_replace('2023-08-01 13:24:56', '(-| |:)', '', 'g');
-- ๊ฒฐ๊ณผ: '20230801132456'
PostgreSQL์์ to_date()๋ ์, ๋ถ, ์ด๊ฐ ๋ฌด์๋๋ฏ๋ก to_timestamp()๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
SELECT
'20230801133051' AS "๋ณํํ ๋ฌธ์",
to_timestamp('20230801133051', 'YYYYMMDDHH24MISS') AS "1. ๋ ์ง๋ก ๋ณํ",
to_char(to_timestamp('20230801133051', 'YYYYMMDDHH24MISS'), 'YYYY-MM-DD HH24:MI:SS') AS "2. ๋ฌธ์๋ก ๋ณํ";
SELECT '123'::INTEGER;
ON CONFLICT๋ INSERT ์ ์ค๋ณต์ด ๋ฐ์ํ ๊ฒฝ์ฐ ํน์ ์ปฌ๋ผ์ ์ ๋ฐ์ดํธํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
seq, yea๋ Primary Key(PK)๋ก ์ค์ ๋์ด ์์ด์ผ ํ๋ค.
์ค๋ณต๋ ๊ฒฝ์ฐ DO UPDATE๋ฅผ ์คํํ์ฌ ์ํ๋ ์ปฌ๋ผ ๊ฐ์ ์์ ํ ์ ์๋ค. (๊ธฐ์กด ๊ฐ ์์ ํ ๋ ์ฌ์ฉ)
INSERT INTO ํ
์ด๋ธ๋ช
(seq, yea, value)
VALUES (1, 2024, '์
๋ฐ์ดํธ ํ
์คํธ')
ON CONFLICT (seq, yea)
DO UPDATE SET value = '์
๋ฐ์ดํธ ์๋ฃ';
์์ ์ฟผ๋ฆฌ๋ฅผ ๊ฐ๋ตํ ์ค๋ช ํด๋ณด๋ฉด Insert๋ฅผ ํ๋๋ฐ ๋ง์ฝ ON CONFLIC์ ์์ฑ๊ฐ์ ํด๋นํ๋ ๋ด์ฉ์ด ๊ทธ๋๋ก ์กด์ฌํ๋ฉด DO UPDATE SETํ์ฌ ๊ธฐ์กด ๊ฐ์ ์ ์งํ์ฑ๋ก ์ํ๋ ๋ถ๋ถ๋ง ์์ ํ ์ ์๋ค !!!