실습용 테이블 생성
--USE tempdb
--create table pivotTest(
-- nName Nchar(3),
-- season Nchar(2),
-- amount int,
--);
--insert into pivotTest values
--('김범수','겨울',10),
--('윤종신','겨울',15),
--('김범수','가을',25),
--('김범수','봄',3),
--('김범수','봄',37),
--('윤종신','겨울',40),
--('김범수','여름',14),
--('김범수','겨울',22),
--('윤종신','겨울',64);
--select * from pivotTest
PIVOT
- 표를 돌려서 보기 쉽게 하는 함수
PIVOT(집계함수(열)
for 새로운 열로 변경할 열이름
in (열목록) as 피벗이름)
select * from pivotTest
select * from pivotTest
PIVOT(sum(amount)
for season
in ( [봄],[여름],[가을],[겨울])) as resultPivot
JSON 데이터
MS-sql 에서는 데이터를 json 으로 바꾸거나 json 을 데이터 파일로 유동적으로 변환하는 기능을 제공한다.
1. DB to json
use sqlDB
select name,height from userTbl
where height >= 180
;
select name,height from userTbl
where height >= 180
for json auto;
2. json to DB
(유용한 JOSON 관련 함수)
JSON_VALUE
JSON_QUERY
ISJSON
DECLARE @json VARCHAR(MAX)
DECLARE @json2 VARCHAR(MAX)
SET @json2 = N'테스트'
SET @json = N'{"userTBL" :
[
{"name":"임재범","height":182},
{"name":"이승기","height":182},
{"name":"성시경","height":186}
]
}'
select ISJSON(@json); -- JSON 이면 1 출력
select ISJSON(@json2); -- JSON 아니면 0 출력
select JSON_QUERY(@json,'$.userTBL[0]');
select JSON_VALUE(@json,'$.userTBL[0].name');
SELECT * FROM OPENJSON(@json, '$.userTBL')
WITH(
name NCHAR(8) '$.name',
height INT '$.height');
'공부,일 > SQL' 카테고리의 다른 글
SET NOCOUNT ON (0) | 2021.07.11 |
---|---|
20210601_2 (0) | 2021.06.01 |
210531_2 (0) | 2021.05.31 |
210531 (0) | 2021.05.31 |
210527 (0) | 2021.05.27 |
댓글