본문 바로가기

반응형

프로그래밍/MSSQL

(76)
[MSSQL] 세로 데이터 가로로 출력 (데이터 한줄로 출력) STUFF, FOR XML PATH 여러 로우의 데이터를 한개의 로우 데이터로 출력해보자 (세로 데이터 가로 한줄로 출력) STUFF , FOR XML PATH SELECT STUFF((SELECT ',' + 컬럼명 FROM A FOR XML PATH ('')), 1, 1, '') AS '가로출력' FROM 테이블명 예제 NAME 손꽁쥐 윤선생 황박사 위의 데이터를 아래와 같이 한줄로 출력하고자 한다 NAME 손꽁쥐, 윤선생, 황박사 WITH TABLE_A (NAME) AS ( SELECT '손꽁쥐' UNION ALL SELECT '윤선생' UNION ALL SELECT '황박사' ) SELECT TOP 1 STUFF((SELECT ',' + NAME FROM TABLE_A FOR XML PATH('')), 1, 1, '') AS '결과'..
[MSSQL] COUNT CASE (조건 카운트) COUNT DISTINCT (중복제거 카운트) COUNT CASE, COUNT DISTINCT 조건에 따른 카운트 및 중복을 제거한 카운트를 세보자 COUNT CASE (조건 카운트) 특정 조건에 해당하는 행의 카운트를 세보자 SELECT COUNT(CASE WHEN 조건 THEN 1 END) FROM 테이블 조건에 일치할 경우 카운트하고, 일치하지 않을 경우 카운트하지 않는다. 예제. 반별 학생 수 카운트 반을 기준으로 반별로 학생의 수를 카운트해보자 WITH TABLE1 (반, 이름) AS ( SELECT 1, '꽁쥐' UNION ALL SELECT 1, '박사' UNION ALL SELECT 2, '찌우' UNION ALL SELECT 2, '소태' UNION ALL SELECT 2, '소희' UNION ALL SELECT 3, '현정' UNI..
[MSSQL] CONVERT, CAST 형변환 함수 형 변환 함수 CONVERT와 CAST에 대해 알아보자 CAST CAST(유효한식 AS 데이터형식(길이)) CAST( expression AS data_type( length ) ) SELECT 29.8 -- 결과 : 29.8 SELECT CAST(29.8 AS INT) -- 결과 : 29 29.8을 INT 형으로 변환하면 정수형인 29이 결과로 출력된다. SELECT 3 + 'age' -- Error 발생 SELECT CAST(3 AS VARCHAR) + 'age' -- 결과 : 3age 1. 첫 번째 INT 타입의 3과 VARCHAR 타입의 'age'를 합치려 하니 Conversion failed when converting the varchar value 'age' to data type int. ..
[MSSQL] ROUND, CEILING, FLOOR (소수점 반올림, 올림, 버림) ROUND (반올림) ROUND(값, 반올림 자릿수, [반올림 여부]) 구하려는 소수점 자리수의 한 자리 아래의 숫자를 반올림 혹은 버림한다. 반올림 여부의 값을 0 또는 생략할 경우 반올림, 음수값일 경우 버림 먼저 반올림의 의미를 알아보자. 반올림이란 구하려는 자리의 한 자리 아래 숫자가 0, 1, 2, 3, 4 일 경우 버림 5, 6, 7, 8, 9 일 경우 올리는 방법을 뜻한다. 그럼 예제를 살펴보자 SELECT ROUND(10.349, 1) -- 10.300 SELECT ROUND(10.349, 2) -- 10.350 SELECT ROUND(10.349, 2, 0) -- 10.350 SELECT ROUND(10.349, 2, -1) -- 10.340 설명> 1) 반올림 자릿수가 1 즉, 구하려는..
[MSSQL] 재귀 쿼리, 트리 구조 (CTE 재귀) 재귀 쿼리 CTE를 이용하여 재귀 쿼리를 작성해보자 WITH TEMP AS ( SELECT 컬럼 FROM 테이블명 UNION ALL SELECT 컬럼 FROM 테이블명 INNER JOIN TEMP ON 테이블명.컬럼 = TEMP.컬럼 ) 예제 1 재귀 쿼리를 통해 1부터 2씩 증가된 숫자를 출력 (200 이하) ;WITH TA AS ( SELECT 1 NUM UNION ALL SELECT NUM + 2 FROM TA WHERE NUM + 2

반응형