반응형

/*******************************************************************************************************************
-- Title : [SQL2017] CONCAT and CONCAT_WS w/ STRING_AGG
-- Reference : docs.microsoft.com
-- Key word : concat concat() concat_ws concat_ws() string_agg string_agg() 멀티값 싱글값 멀티 로우 싱글 로우

                  단일값 string aggregation
*******************************************************************************************************************/


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
use tempdb;
go
 
 
------------------------------
-- CONCAT
------------------------------
select concat('aaa''bbb'null'ccc'
    /* aaabbbccc */
SELECT CONCAT ( 'Happy ''Birthday '11'/''25' ) AS Result;  
    /* Happy Birthday 11/25 */
 
 
------------------------------
-- CONCAT_WS (separator, argument1, argument1 [, argumentN]… ) 
------------------------------
SELECT CONCAT_WS( ' - ''AAA''BBB'NULL'DDD') AS DatabaseInfo
    /* AAA - BBB - DDD */
SELECT CONCAT_WS( ' - '123'DDD') AS DatabaseInfo
    /* 1 - 2 - 3 - DDD */
 
 
------------------------------
-- CONCAT_WS w/ STRING_AGG
------------------------------
SELECT CONCAT_WS( '~', database_id, ISNULL(recovery_model_desc,''), ISNULL(containment_desc,'N/A'), ';') AS DatabaseInfo
FROM sys.databases;
    /*
    1~SIMPLE~NONE~;
    2~SIMPLE~NONE~;
    3~FULL~NONE~;
    4~SIMPLE~NONE~;
    5~FULL~NONE~;
    */
SELECT STRING_AGG( CONCAT_WS( '~', database_id, ISNULL(recovery_model_desc,''), ISNULL(containment_desc,'N/A'), ';')
                 , char(13)
                 ) AS DatabaseInfo
FROM sys.databases;
    /*
    1~SIMPLE~NONE~; 2~SIMPLE~NONE~; 3~FULL~NONE~; 4~SIMPLE~NONE~; 5~FULL~NONE~;
    */
cs


반응형

+ Recent posts