본문 바로가기
공부,일/SQL

20210601

by fromnothing1 2021. 6. 1.

실습용 테이블 생성

--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

댓글