문자열 그룹을 조작하는 함수

SQL Server에서 데이터 조작을 위한 함수

Ana Voicu

Data Engineer

CONCAT() 및 CONCAT_WS()

CONCAT(string1, string2 [, stringN ])

CONCAT_WS(separator, string1, string2 [, stringN ])

유의: 문자열 연결에는 "+" 연산자보다 함수 사용이 더 좋습니다.

SQL Server에서 데이터 조작을 위한 함수

CONCAT() 및 CONCAT_WS() 예시

SELECT 
    CONCAT('Apples', 'and', 'oranges') AS result_concat,
    CONCAT_WS(' ', 'Apples', 'and', 'oranges') AS result_concat_ws,
    CONCAT_WS('***', 'Apples', 'and', 'oranges') AS result_concat_ws2;
| result_concat    | result_concat_ws   | result_concat_ws2      |
|------------------|--------------------|------------------------|
| Applesandoranges | Apples and oranges | Apples***and***oranges |
SQL Server에서 데이터 조작을 위한 함수

STRING_AGG()

STRING_AGG(expression, separator) [ <order_clause> ]

  • 문자열 값을 구분자로 이어 붙입니다.
SQL Server에서 데이터 조작을 위한 함수

STRING_AGG() 예시

SELECT 
    STRING_AGG(first_name, ',') AS list_of_names
FROM voters;
| list_of_names                            |
|------------------------------------------|
| Carol,Ana,Melissa,Angela,Grace,Melody... |
SELECT 
    STRING_AGG(CONCAT(first_name, ' ', last_name, ' (', first_vote_date, ')'), CHAR(13))  AS list_of_names
FROM voters;
| list_of_names                    |
|----------------------------------|
| Carol Rai (2015-03-09)           |
| Ana Price (2015-01-17) ...       |
SQL Server에서 데이터 조작을 위한 함수

GROUP BY와 함께하는 STRING_AGG()

SELECT 
    YEAR(first_vote_date) AS voting_year,
    STRING_AGG(first_name, ', ') AS voters
FROM voters
GROUP BY YEAR(first_vote_date);
| voting_year | voters                           |
|-------------|----------------------------------|
| 2013        | Melody, Clinton, Kaylee,...      |
| 2014        | Brett, Joe, April, Mackenzie,... |
| 2015        | Cedric, Julie, Sandra,...        |
| 2016        | Isabella, Vincent, Haley,...     |
SQL Server에서 데이터 조작을 위한 함수

선택적 <order_clause>가 있는 STRING_AGG()

SELECT 
    YEAR(first_vote_date) AS voting_year,
    STRING_AGG(first_name, ', ') WITHIN GROUP (ORDER BY first_name ASC) AS voters
FROM voters
GROUP BY YEAR(first_vote_date);
| voting_year | voters                         |
|-------------|--------------------------------|
| 2013        | Amanda, Anthony, Caroline,...  |
| 2014        | April, Brett, Bruce, Carl, ... |
| 2015        | Abigail, Alberto, Alexa,...    |
| 2016        | Barbara, Haley, Isabella,...   |
SQL Server에서 데이터 조작을 위한 함수

STRING_SPLIT()

STRING_SPLIT(string, separator)

  • 구분자 기준으로 문자열을 분할합니다.
  • 단일 컬럼 테이블을 반환합니다.
SELECT * 
FROM STRING_SPLIT('1,2,3,4', ',')
| value |
|-------|
| 1     | 
| 2     | 
| 3     | 
| 4     | 
SQL Server에서 데이터 조작을 위한 함수

연습해 봅시다!

SQL Server에서 데이터 조작을 위한 함수

Preparing Video For Download...