SQL/MSSQL

    [MSSQL] 행 합치는 법(STRING_AGG, FOR XML PATH, STUFF)

    MSSQL에서 행을 합치는 방법은 여러 가지가 있습니다. 다음은 주요한 방법 몇 가지를 설명하겠습니다. 1. STRING_AGG 함수를 사용하여 행 합치기: - STRING_AGG 함수는 MSSQL 2017 버전부터 도입되었습니다. - 문자열 컬럼 값을 지정한 구분자로 연결하여 하나의 문자열로 합칩니다. - 예시: SELECT STRING_AGG(column_name, '; ') AS merged_rows FROM table_name 2. XML PATH와 STUFF 함수를 사용하여 행 합치기: - `FOR XML PATH` 절과 STUFF 함수를 조합하여 행을 합칠 수 있습니다. - 예시: SELECT STUFF(( SELECT ', ' + column_name FROM table_name FOR XM..

    [MSSQL] FOR XML 사용 방법

    `FOR XML` 절은 SQL Server에서 XML 형식으로 데이터를 쿼리 결과로 반환하는 데 사용되는 기능입니다. 이를 통해 쿼리 결과를 XML 형식으로 변환하고, XML을 생성, 조작, 처리할 수 있습니다. 아래 예제를 통해 `FOR XML`에 대해 자세히 설명하겠습니다. 예시를 위해 다음과 같은 테이블 구조를 가진 `Customers` 테이블을 사용하겠습니다. plaintext Customers Table: +----+---------+--------+----------+ | ID | Name | City | Country | +----+---------+--------+----------+ | 1 | John | London | UK | | 2 | Emily | Paris | France | |..

    [MSSQL] @@ROWCOUNT 사용 방법 및 예시

    MSSQL에서 `@@ROWCOUNT`는 가장 최근에 실행된 SQL 문에 의해 영향을 받는 행의 수를 반환하는 시스템 변수입니다. 이 변수는 일반적으로 DML 문 (INSERT, UPDATE, DELETE)을 실행한 후에 사용됩니다. @@ROWCOUNT` 변수를 사용하여 몇 가지 유용한 작업을 수행할 수 있습니다. 아래 예시를 통해 `@@ROWCOUNT`의 사용 방법을 자세하게 설명하겠습니다. -- 예시: Employees 테이블에서 Salary가 5000 이상인 직원의 Salary를 10% 인상시키는 UPDATE 문을 실행합니다. UPDATE Employees SET Salary = Salary * 1.1 WHERE Salary >= 5000 -- @@ROWCOUNT를 사용하여 영향을 받는 행의 수를 확..

    [MSSQL] STRING_SPLIT 문자열 분리 사용 방법

    MSSQL에서 STRING_SPLIT 함수를 사용하면 문자열을 지정된 구분자를 기준으로 분리하여 테이블 형태로 반환할 수 있습니다. 아래 예제와 함께 STRING_SPLIT 함수의 사용법을 자세하게 알려드리겠습니다. DECLARE @string VARCHAR(100) = 'apple,banana,orange' SELECT value FROM STRING_SPLIT(@string, ',') 이 예제에서는 @string 변수에 'apple,banana,orange'라는 문자열이 저장되어 있습니다. STRING_SPLIT 함수를 사용하여 이 문자열을 쉼표(,)를 구분자로하여 분리한 후 결과를 조회합니다. STRING_SPLIT 함수는 두 개의 인자를 받습니다: 첫 번째 인자(@string): 분리할 문자열입니..

    [MSSQL] STRING_AGG 함수 사용 방법 및 예시

    SQL Server 2017부터는 T-SQL의 STRING_AGG 함수를 사용하여 문자열을 결합할 수 있습니다. 이 함수는 하나 이상의 열 값을 결합하여 구분 기호로 구분된 하나의 문자열로 반환합니다. 다음은 STRING_AGG 함수를 사용하여 문자열을 결합하는 방법에 대한 자세한 설명입니다. 기본 구문 STRING_AGG ( expression, separator ) expression: 결합할 열의 이름 또는 식입니다. separator: 구분 기호입니다. 결합할 문자열 간에 삽입됩니다. 예제 다음은 Sales.SalesOrderDetail 테이블의 ProductID 열을 결합하여 문자열을 만드는 예제입니다. SELECT STRING_AGG(CONVERT(VARCHAR(10), ProductID), ..

    [MSSQL] Coalesce 함수 Null이 아닌 값 반환 사용 방법

    MS SQL Server에서 COALESCE 함수는 여러 개의 인자 중에서 NULL이 아닌 첫 번째 인자를 반환하는 함수입니다. 즉, 첫 번째 인자가 NULL이면 두 번째 인자를 검사하고, 두 번째 인자도 NULL이면 세 번째 인자를 검사하는 식으로 NULL이 아닌 값을 찾을 때까지 계속해서 인자를 검사합니다. COALESCE 함수의 구문은 다음과 같습니다. COALESCE(value1, value2, value3, ...) 위 구문에서 value1, value2, value3 등은 체크하려는 값입니다. COALESCE 함수는 첫 번째 인자부터 순서대로 검사하여 NULL이 아닌 값을 찾아 반환합니다. 예를 들어, 다음 쿼리는 COALESCE 함수를 사용하여 employee 테이블에서 email이 NULL..

    [MSSQL] INNER, LEFT, RIGHT, FULL JOIN 쿼리 사용 방법

    MS SQL에서 JOIN은 두 개 이상의 테이블에서 데이터를 가져와 연결하는 방법입니다. JOIN을 사용하면 여러 테이블의 데이터를 하나의 테이블처럼 조회할 수 있습니다. MS SQL에서는 다양한 JOIN 방법을 제공합니다. 1. INNER JOIN: INNER JOIN은 두 개의 테이블에서 공통된 값을 가지는 행만을 연결하는 방법입니다. SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name; 위 쿼리는 table1과 table2에서 공통된 column_name 값을 가지는 행만을 가져와 column_name(s)를 반환합니다. 2. LEFT JOIN: LEFT JOIN은 첫 번째 테이블의..

    [MSSQL] IS NULL 사용 방법

    MS SQL에서 IS NULL 조건은 특정 열이 NULL 값을 가지는 행을 찾을 때 사용됩니다. 예를 들어, customers 테이블에서 address 열이 NULL 값을 가지는 모든 행을 검색하려면 다음과 같이 쿼리를 작성할 수 있습니다. SELECT * FROM customers WHERE address IS NULL; 위 쿼리는 customers 테이블에서 address 열이 NULL 값을 가지는 모든 행을 반환합니다. 또한, IS NOT NULL 조건은 특정 열이 NULL 값을 가지지 않는 행을 찾을 때 사용됩니다. 예를 들어, orders 테이블에서 order_date 열이 NULL 값을 가지지 않는 모든 행을 검색하려면 다음과 같이 쿼리를 작성할 수 있습니다. SELECT * FROM orde..

    [MSSQL] Insert Into / 데이터 삽입 쿼리

    MS SQL Server에서 데이터를 삽입하는 방법은 INSERT INTO 문을 사용하는 것입니다. 아래는 INSERT INTO 문을 사용하여 새로운 행을 삽입하는 기본적인 예제입니다. INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...); 위의 쿼리에서 table_name은 데이터를 삽입할 대상 테이블의 이름입니다. column1, column2, column3 등은 삽입 할 데이터의 열 이름이며, value1, value2, value3 등은 해당 열에 삽입 될 데이터 값입니다. 예를 들어, employees라는 테이블에 새로운 직원 데이터를 삽입하는 예제를 살펴 보겠습니다. employe..

    [MSSQL] Dateadd 함수 사용법

    SQL Server에서 'DATEADD' 함수는 날짜나 시간에 대한 연산을 수행하는 함수입니다. 이 함수는 특정 날짜나 시간에 대해 지정된 시간 간격을 더하거나 빼는 데 사용됩니다. 다음은 DATEADD 함수의 기본 구문입니다. DATEADD (datepart, number, date) datepart: 시간 간격을 지정합니다. 예를 들어, year, month, day, hour, minute, second, millisecond 등의 값을 사용할 수 있습니다. number: datepart에 지정된 시간 간격에 대해 더하거나 빼는 값을 지정합니다. date: 시간 간격을 더하거나 빼고자 하는 날짜 또는 시간 값입니다. 예를 들어, 다음은 현재 날짜와 시간에 10분을 추가하는 방법입니다. SELECT ..