SQL은 데이터베이스에서 데이터를 조작, 조회, 관리를 위해 사용됩니다.
대량의 데이터를 분석하고 요약하거나 여러 개의 테이블을 연결하여 복합적인 데이터를 조회하며 데이터를 정리하고 가공할 때 자주 사용하는 분석도구입니다.
SAS에서는 DATA step 보다 간결한 코드 작성 가능하며 PROC SQL 문을 사용하여 SAS 데이터를 관계형 데이터 베이스 테이블처럼 사용할 수 있습니다.
SQL의 Concat 함수는 둘 이상의 문자열 값을 엔드투엔드 방식으로 연결하거나 조인한 결과를 문자열로 출력합니다.
string value 인수가 필요하며 둘 이상의 값이 없으면 오류가 발생합니다.
다음은 CONCAT statement의 기본 Syntax입니다.
CONCAT (string_value1[,string_valueN])
• SELECT CONCAT('Hello','World','!');
• SELECT CONCAT('Agatha(first name)', '(middle name)', 'Christie(Last Name)')
AS full_name FROM table1;
# Null 결합
• SELECT col1
CONCAT(NULL, co1, col2) AS col
FROM table1;
다음은 table2를 생성 및 데이터를 넣는 코드입니다.
create table table2(
first_name varchar(20) not null,
middle_name varchar(20),
last_name varchar(20) not null,
age number)
insert into table2(first_name, middle_name, last_name, age)
VALUES ('michael', 'James', 'Carter', 13);
insert into table2(first_name, middle_name, last_name, age)
VALUES ('Emily', 'Grace', 'Thomson', 23);
insert into table2(first_name, middle_name, last_name, age)
VALUES ('Sophia', 'Rose', 'Wilson', 44);
> Null 결합은 어떤 문자열과 결합하더라도 결과는 Null로 반환합니다.
SELECT
first_name, concat(null, first_name, last_name) as col from table2;
> Concat 문을 활용하면서 문자열을 더할 수 있습니다.
미리 구분자를 정의해서 자동으로 적용시킬 수 있습니다. 첫번째 인수는 나머지 인수의 구분 기호로 연결할 문자열 사이에 구분 기호가 추가됩니다.
SELECT
CONCAT_WS(',', first_name, last_name) AS COL2
FROM TABLE2;
> CONCAT_WS 는 비어있는 열을 그대로 적용합니다.
합치려는 열에 NULL 이 있을 경우 결과가 NULL 이 아닌 문자의 결합으로 결과가 출력됩니다.
SELECT
CONCAT_WS(',', first_name,NULL, last_name) AS COL2
FROM TABLE2;