EEALL@ONCE

๐Ÿ“Š CONCAT ๋ณธ๋ฌธ

Data๐Ÿ“Š/DB ์ดํ•ด

๐Ÿ“Š CONCAT

์˜ฌ์—ฃ์›์Šค 2023. 8. 7. 15:10
728x90

CONCAT์€ ๋‘ ๊ฐœ ์ด์ƒ์˜ ๋ฌธ์ž์—ด์„ ์—ฐ๊ฒฐํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. SQL์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ, ์—ฌ๋Ÿฌ DBMS์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

SELECT CONCAT('Hello', ' ', 'World');

Result : Hello World

 

๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ CONCAT ํ•จ์ˆ˜๋Š” ๋ฌธ์ž์—ด์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํฐ ๋ฐ์ดํ„ฐ ์„ธํŠธ์—์„œ ๋งŽ์€ ๋ฌธ์ž์—ด์„ ์—ฐ๊ฒฐํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ๋ฌธ์ž์—ด์˜ ํฌ๊ธฐ๊ฐ€ ํฐ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ๋Š” ๋‹ค๋ฅธ ๋ฐฉ์‹์„ ๊ณ ๋ คํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SIDE EFFECT:

  1. CONCAT์€ NULL ๊ฐ’์„ ํฌํ•จํ•˜๋Š” ๋ฌธ์ž์—ด๊ณผ ์—ฐ๊ฒฐํ•  ๊ฒฝ์šฐ ๊ฒฐ๊ณผ๋ฅผ NULL๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, CONCAT(NULL, 'test')๋Š” NULL์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ฌธ์ž์—ด ์—ฐ๊ฒฐ ์—ฐ์‚ฐ์ด ๋งŽ์•„์งˆ์ˆ˜๋ก ์„ฑ๋Šฅ์ด ์ €ํ•˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜์™€ ๊ฐ™์ด SUBSTRING์„ ์ด์šฉํ•ด์„œ ๋ฌธ์ž์—ด์„ ํŒŒ์‹ฑํ•  ์ˆ˜ ๋„์žˆ๋‹ค.

CONCAT(SUBSTRING(origin, 2, 2), SUBSTRING(origin, 5)) AS pasing_result

SUBSTRING(origin, 2, 2)๋Š” origin ๋ฌธ์ž์—ด์˜ 2๋ฒˆ์งธ ๋ฌธ์ž๋ถ€ํ„ฐ 2๊ฐœ์˜ ๋ฌธ์ž๋ฅผ ์ถ”์ถœํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, origin์ด "ABCDEFG"์ผ ๋•Œ, ์ด ๋ถ€๋ถ„์€ "BC"๋ฅผ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.

SUBSTRING(origin, 5)๋Š” origin ๋ฌธ์ž์—ด์˜ 5๋ฒˆ์งธ ๋ฌธ์ž๋ถ€ํ„ฐ ๋๊นŒ์ง€์˜ ๋ฌธ์ž๋ฅผ ์ถ”์ถœํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ, origin์ด "ABCDEFG"์ผ ๋•Œ, ์ด ๋ถ€๋ถ„์€ "EFG"๋ฅผ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  CONCAT(SUBSTRING(origin, 2, 2), SUBSTRING(origin, 5))๋Š” ์•ž์„œ ์ถ”์ถœํ•œ ๋‘ ๊ฐœ์˜ ๋ฌธ์ž์—ด์„ ํ•ฉ์ณ์„œ "BCEFG"๋ผ๋Š” ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ pasing_result ์ปฌ๋Ÿผ์—๋Š” "BCEFG"๋ผ๋Š” ๊ฐ’์ด ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

 

 

728x90

'Data๐Ÿ“Š > DB ์ดํ•ด' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๐Ÿ“ŠDATE_ADD  (0) 2023.08.16
๐Ÿ“ŠSUBSTRING  (0) 2023.08.07
๐Ÿ“Š case  (0) 2023.07.28
๐Ÿ“ŠDISTINCT  (0) 2023.07.28
๐Ÿ“Š DATE  (0) 2023.07.28