SQL
-
SQL COALESCE 함수 A to Z: NULL이 아닐 때까지 대체값 찾기Database 2025. 7. 3. 11:24
들어가며데이터를 처리하다 보면 여러 컬럼 중 첫 번째로 값이 존재하는(≠NULL) 컬럼을 골라 쓰고 싶을 때가 있습니다. 이럴 때 쓰기 좋은 함수가 COALESCE입니다. 이번 글에서는 COALESCE의 역할, 문법, 다양한 예제를 통해 활용법을 정리합니다.1. COALESCE란?COALESCE(expr1, expr2[, expr3, …]) 함수는 인자들을 왼쪽부터 순서대로 검사하여,첫 번째로 NULL이 아닌 값을 반환모두 NULL이면 → NULL 반환하는 함수입니다.2. 기본 문법COALESCE(값1, 값2, 값3, …)3. 실전 예제예제 테이블: orders3-1) 우선순위 메모 가져오기SELECT order_id, COALESCE(customer_memo, admin_note, default_n..
-
SQL NULLIF 함수 완벽 가이드: 특정 값을 NULL로 대체하기Database 2025. 7. 3. 11:18
들어가며SQL을 다루다 보면 “특정 값(예: 빈 문자열, 특정 코드 등)을 NULL로 간단히 바꾸고 싶다”는 경우가 자주 발생합니다. 이때 유용하게 쓰이는 함수가 바로 NULLIF입니다. 오늘은 NULLIF의 기본 개념부터 실전 예시까지 살펴보겠습니다.1. NULLIF란?NULLIF(expr1, expr2) 함수는 두 인수 expr1과 expr2를 비교하여,expr1 = expr2 이면 → NULL 반환그렇지 않으면 → expr1 반환하는 아주 단순하지만 강력한 기능을 제공합니다.2. 기본 문법NULLIF(비교할_값1, 비교할_값2)3. 실전 예제예제 테이블: employees3-1) 빈 문자열을 NULL로SELECT id, name, NULLIF(bonus_code, '') AS bonus_cod..
-
SQLite 행번호(행넘버, row number) 조회하고 UPDATE하기Database/SQLite 2024. 2. 28. 20:41
기존테이블에는 아이디와 네임, 같은 기본 정보들만 존재하는데 순번이 추가되어야 하는 상황이다. 이 순번은 서로 바뀔 수도 있기 때문에 꼭 칼럼을 추가해야 한다. 순번 칼럼을 추가하면, 기존에 있는 데이터는 순번 데이터가 NULL이 되기 때문에 기존 데이터는 등록일 기준으로 순번 데이터를 업데이트 하려고 한다. SEQ_NO 칼럼을 추가 한 직후의 테이블을 조회하면 아래와 같다. 1. 순번 조회하기SQLite에는 순번을 쉽게 구할 수 있는 내장 함수를 지원한다. (3.8.3 이상) 대표적으로 RANK와 ROW_NUMBER가 있다. RANK와 ROW_NUMBER는 사용하는 방법은 동일하지만 결과는 조금 다르다.1) RANK()SELECT RANK() OVER (ORDER BY CREATE_DATE) AS SE..
-
MSSQL 소계, 합계 만드는 쿼리Database/MSSQL 2019. 4. 23. 12:04
다음은 UNION과 Order by를 이용해 소계와 합계를 만드는 쿼리에 대한 설명이다. -- 테이블 정의 DECLARE @Table1 table ( _Name varchar(30) null, _Date varchar(10) null, _Number int null ) @Table1에 아래 그림과 같이 데이터가 들어있으며 사람별 _Number의 합계와 전체 _Number의 합계를 구하고자 할 때 SELECT _Name, _Date, _Number, 1 as Ordering FROM @Table1 UNION ALL SELECT _Name, '소계' as _Date, SUM(_Number) as Number, 1 as Ordering FROM @Table1 GROUP BY _GroupName UNION AL..
-
MSSQL 전체 SUM이 아닌 점차적으로 더하고(SUM) SELECTDatabase/MSSQL 2019. 1. 23. 15:21
SELECT sum(column) FROM table 을 하면 column의 row값 전체합을 조회한다.column의 전체합이 아니라row를 하나씩 점차적으로 sum을 하는 방법이 어디 없을까? SELECT ID, ( SELECT SUM(ValueColumn) FROM Test T2 WHERE T2.ID > 쿼리실행 >> 쿼리결과그림에서 W_UserAtt_Group 칼럼의 값은 전부 1인데 이 칼럼을 점차 더해주는 쿼리를 사용하여 GradualSum에서 W_UserAtt_Group 값이 1씩 증가한 것을 볼 수 있다.
-
더 빠른 SQL 쿼리를 위한 데이터베이스 튜닝 규칙 21가지Database 2019. 1. 2. 15:16
더 빠른 SQL 쿼리를 위한 21가지 데이터베이스 튜닝 규칙 개발자 /애플리케이션InfoWorld누구나 더 빠른 데이터베이스 쿼리를 원하며, SQL 개발자와 DBA 모두 이런 목표를 달성하기 위해 오랜 사용으로 효과가 입증된 여러 가지 방법에 의지한다. 하지만 안타깝게도 그 어떤 방법이라도 하나만으로는 완벽하거나 확실하지 않다. 이처럼 모든 쿼리를 미세조정, 즉 튜닝하기 위한 정답이 존재하지는 않지만, 길을 밝히는데 도움이 되는 풍부한 관례가 있다. 몇 가지는 RDMBS에 관련된 사항들이지만, 대부분의 팁은 모든 관계형 데이터베이스에 적용된다. SQL 서버, 오라클, DB2, 사이베이스, MySQL, 아니면 다른 관계형 데이터베이스 플랫폼 중 어디에서 코딩을 하고 있더라도, 목표는 같다. 데이터베이스가 ..