반응형

구문

JSON_MODIFY ( expression , path , newValue )  

기본 쿼리


DECLARE @info NVARCHAR(100)='{"name":"John","skills":["C#","SQL"]}'

PRINT @info

-- Update name  

SET @info=JSON_MODIFY(@info,'$.name','Mike')

PRINT @info

-- Insert surname  

SET @info=JSON_MODIFY(@info,'$.surname','Smith')

PRINT @info

-- Set name NULL 

SET @info=JSON_MODIFY(@info,'strict $.name',NULL)

PRINT @info

-- Delete name  

SET @info=JSON_MODIFY(@info,'$.name',NULL)

PRINT @info

-- Add skill  

SET @info=JSON_MODIFY(@info,'append $.skills','Azure')

PRINT @info

결과

{
    "name": "John",
    "skills": ["C#", "SQL"]
} {
    "name": "Mike",
    "skills": ["C#", "SQL"]
} {
    "name": "Mike",
    "skills": ["C#", "SQL"],
    "surname": "Smith"
} {
    "skills": ["C#", "SQL"],
    "surname": "Smith"
} {
    "skills": ["C#", "SQL", "Azure"],
    "surname": "Smith"
}

 

https://docs.microsoft.com/ko-kr/sql/t-sql/functions/json-modify-transact-sql?view=sql-server-ver15 

 

 

JSON_MODIFY(Transact-SQL) - SQL Server

JSON_MODIFY(Transact-SQL)

docs.microsoft.com

 

반응형
반응형

PIVOT SUM FOR IN PIVOT_TABLE

 

PIVOT을 이용하여 세로를 가로로 변환 방법(행 열 변환) 

SELECT Student  
, isnull(CAST([Mathematics] AS varchar), '' ) [Mathematics]
, isnull(CAST([Science] AS varchar), '' ) [Science]
, isnull(CAST([Geography] AS varchar), '' ) [Geography]
-- , * 
FROM (
  SELECT
    [Student],
    [Subject],
    [Marks]
  FROM #TEMP_TABLE_Grades
) StudentResults
PIVOT (
  SUM([Marks])
  FOR [Subject]
  IN (
    [Mathematics],
    [Science],
    [Geography]
  )
) AS PivotTable;

IF OBJECT_ID('tempdb..#TEMP_TABLE_Grades') --임시 테이블 남아있을시 삭제 
  IS NOT NULL DROP TABLE #TEMP_TABLE_Grades;
 

CREATE TABLE #TEMP_TABLE_Grades(
  [Student] VARCHAR(50),
  [Subject] VARCHAR(50),
  [Marks]   INT
);
 
INSERT INTO #TEMP_TABLE_Grades VALUES 
('Jacob','Mathematics',100),
('Jacob','Science',95),
('Jacob','Geography',90),
('Jacob2','Mathematics',''),
('Jacob2','Science',''),
('Amilee','Mathematics',90),
('Amilee','Science',90),
('Amilee','Geography',100);
 
SELECT * FROM (
  SELECT
    [Student],
    [Subject],
    [Marks]
  FROM #TEMP_TABLE_Grades
) StudentResults
PIVOT (
  SUM([Marks])
  FOR [Subject]
  IN (
    [Mathematics],
    [Science],
    [Geography]
  )
) AS PivotTable
반응형
반응형

데이터 리터러시( Data literacy )는 데이터 를 정보 로 읽고, 이해하고, 생성하고, 전달할 수 있는 능력 입니다. 일반 개념으로서의 문해력 과 마찬가지로 데이터 문해력은 데이터 작업과 관련된 역량 에 중점을 둡니다. 그러나 데이터를 읽고 이해하는 것과 관련된 특정 기술이 필요하기 때문에 텍스트를 읽는 능력과 유사하지 않습니다. 

 

리터러시(literacy)는 글을 읽고 해독하는 능력을 의미한다. 데이터 리터러시는 데이터를 목적에 맞게 활용하는 데이터 해석 능력을 말한다. 여기서의 데이터는 고도의 처리 기술이 필요한 빅데이터에서 단순 수치 등도 포함한다. 수많은 데이터가 쏟아지는 상황에서 데이터에 담겨있는 의미를 파악하여 의미를 파악해 내는 능력은 데이터 활용 과정 전반에 필요한 역량이다. 빅데이터 시대에 데이터 리터러시는 개인에게도 필요한 능력이며, 데이터 수집 역량, 관리 역량, 가공 및 분석 역량, 시각화 역량, 기획 역량 등이 데이터를 활용하는 능력이다.

 

 

데이터 수집  데이터 공유 가 일상화되고 데이터 분석  빅 데이터 가 뉴스, 비즈니스, [2] 정부 [3] 및 사회 에서 일반적인 아이디어가 됨에 따라 [4] 학생, 시민 및 독자에게 점점 더 중요해지고 있습니다. 데이터 활용 능력이 있습니다. 이 개념은 일반적으로 자동화된 수단을 통한 데이터 분석과 결과의 해석 및 적용과 관련된 데이터 과학과 관련이 있습니다. [5]

데이터 리터러시(Data literacy)는 그래프와 차트를 읽고 데이터에서 결론을 도출하는 능력을 포함하여 데이터의 의미를 이해하는 것을 포함하기 때문에 통계 리터러시 와 구별됩니다 . [6] 한편, 통계적 소양은 그래프, 표, 진술, 설문조사, 연구와 같은 "일상적인 매체에서 요약 통계를 읽고 해석하는 능력"을 의미한다. [6]

 

정보를 찾고 사용하기 위한 가이드로서 사서 는 학생과 연구원을 위한 데이터 활용 능력에 대한 워크샵을 이끌고 자신의 데이터 활용 능력을 개발하기 위해 노력합니다. [7]

기관 및 학문 분야에 걸쳐 도서관 교육 프로그램에서 적용 가능한 공통 참조 프레임워크로 사용할 수 있는 일련의 핵심 역량 및 내용이 제안되었습니다. [8]

사서가 만든 리소스에는 MIT 의 데이터 관리 및 출판 자습서, EDINA 연구 데이터 관리 교육(MANTRA), 에딘버러 대학의 데이터 라이브러리 및 미네소타 대학 도서관의 구조 엔지니어를 위한 데이터 관리 과정이 있습니다.

 

반응형
반응형

[MSSQL] 특정 기간에 해당하는 모든 날짜 (MASTER..SPT_VALUES) 

 

 

SELECT CONVERT(VARCHAR, DATEADD(D, NUMBER, '20170213'), 112) AS 'DATE' 
FROM MASTER..SPT_VALUES 
WHERE TYPE = 'P' AND NUMBER <= DATEDIFF(D, '20170213', '20170730')
반응형
반응형

Adding string to DATEDIFF(day,getdate(),enddate) as DayRemain how please?

 

select 'Days remain ' + convert(varchar(20),(DATEDIFF(day,getdate(),'29 Oct 2011 12:00:00'))) as 'Days Remain'

the output of above query will be 

| Days Remain     |

| Days remain 30 |

반응형
반응형

Convert Datetime to Unix timestamp

 

Convert Datetime to Unix timestamp

In Microsoft SQL Server 2012 or above, is it possible to convert a datetime value to Unix time stamp in a single select statement? If so, how can it be done?

stackoverflow.com

In Microsoft SQL Server 2012 or above, is it possible to convert a datetime value to Unix time stamp in a single select statement? If so, how can it be done?

 
use db

CREATE FUNCTION UNIX_TIMESTAMP (
@ctimestamp datetime
)
RETURNS integer
AS
BEGIN
  /* Function body */
  declare @return integer
   
  SELECT @return = DATEDIFF(SECOND,{d '1970-01-01'}, @ctimestamp)
   
  return @return
END



SELECT dbo.UNIX_TIMESTAMP(GETDATE()) ;

 

https://stackoverflow.com/questions/34455408/convert-datetime-to-unix-timestamp

 

 

How can I convert UNIX timestamp (bigint) to DateTime in SQL Server?

Select dateadd(S, 1637852002, '1970-01-01')

 

.

반응형
반응형

▶ 데이터 타입

SQL Server PostgreSQL
BIGINT 64-bit integer BIGINT
BINARY(n) Fixed-length byte string BYTEA
BIT 1, 0 or NULL BOOLEAN
CHAR(n), CHARACTER(n) Fixed-length character string, 1 ⇐ n ⇐ 8000 CHAR(n), CHARACTER(n)
DATE Date (year, month and day) DATE
DATETIME Date and time with fraction TIMESTAMP(3)
DATETIME2(p) Date and time with fraction TIMESTAMP(p)
DATETIMEOFFSET(p) Date and time with fraction and time zone TIMESTAMP(p) WITH TIME ZONE
DECIMAL(p,s), DEC(p,s) Fixed-point number DECIMAL(p,s), DEC(p,s)
DOUBLE PRECISION Double-precision floating-point number DOUBLE PRECISION
FLOAT(p) Floating-point number DOUBLE PRECISION
IMAGE Variable-length binary data, ⇐ 2G BYTEA
INT, INTEGER 32-bit integer INT, INTEGER
MONEY 64-bit currency amount MONEY
NCHAR(n) Fixed-length Unicode UCS-2 string CHAR(n)
NTEXT Variable-length Unicode UCS-2 data, ⇐ 2G TEXT
NUMERIC(p,s) Fixed-point number NUMERIC(p,s)
NVARCHAR(n) Variable-length Unicode UCS-2 string VARCHAR(n)
NVARCHAR(max) Variable-length Unicode UCS-2 data, ⇐ 2G TEXT
REAL Single-precision floating-point number REAL
ROWVERSION Automatically updated binary data BYTEA
SMALLDATETIME Date and time TIMESTAMP(0)
SMALLINT 16-bit integer SMALLINT
SMALLMONEY 32-bit currency amount MONEY
TEXT Variable-length character data, ⇐ 2G TEXT
TIME(p) Time (hour, minute, second and fraction) TIME(p)
TIMESTAMP Automatically updated binary data BYTEA
TINYINT 8-bit unsigned integer, 0 to 255 SMALLINT
UNIQUEIDENTIFIER 16-byte GUID (UUID) data CHAR(16)
VARBINARY(n) Variable-length byte string, 1 ⇐ n ⇐ 8000 BYTEA
VARBINARY(max) Variable-length binary data, ⇐ 2G BYTEA
VARCHAR(n) Variable-length character string, 1 ⇐ n ⇐ 8000 VARCHAR(n)
VARCHAR(max) Variable-length character data, ⇐ 2G TEXT
XML XML data XML

▶ 함수

SQL Server PostgreSQL
DATEADD Add an interval to datetime INTERVAL expression
ISNULL(exp, replacement) Replace NULL with the specified value COALESCE(exp, replacement)



출처: https://icodebroker.tistory.com/6429 [ICODEBROKER]

 

반응형
반응형

자동 증가 형식 (serial 등)

 

PosgtreSQL에서 사용할 수 있는 데이터 형에서 자동 증가 타입의 사용법에 대해 설명하겠다. 자동 증가 타입으로 설정한 컬럼은 자동으로 연속 값이 저장된다. 자동 증가 타입은 smallserial, serial, bigserial의 3 가지 유형의 데이터가 존재한다.

자동 증가 형식

연번 형은 취급 숫자의 범위가 다른 3 가지 데이터 유형이 있다.

형식크기범위별칭

smallserial 2 바이트 1~32767 serial2
serial 4 바이트 1~2147483647 serial4
bigserial 8 바이트 1~9223372036854775807 serial8

자동 증가 타입이 설정된 컬럼이 포함된 테이블에 데이터를 추가를 하면, 자동 증가 타입의 컬럼에 직접 값을 지정하는 것이 아니라 기본값이 포함되도록 한다. 그러면 자동으로 지금까지 등록된 값보다 큰 값(일반적으로 1 큰 값)이 자동으로 저장된다. (MySQL에서 말하는 컬럼에 AUTO_INCREMENT를 설정 한 것과 비슷하다)

※ 자동 증가 형식은 내부적으로 시퀀스를 이용하여 구현되어 있다.


자동 증가 타입이 설정된 컬럼에 값을 지정하여 데이터를 추가

자동 증가 타입이 설정된 컬럼에 따로 지정하지 않으면 디폴트 값으로 자동으로 연속적인 값이 저장되지만, 임의의 값을 지정하여 데이터를 추가 할 수도 있다.

현재 4개의 데이터를 추가한 상태에 다음 데이터를 추가하게 되면, 자동 증가 타입이 설정된 id 컬럼에 다음 디폴트 값인 5가 저장된다.

여기서 id 컬럼에 값을 지정하여 데이터를 추가 할 수 있다.

 

mydb=# insert into myfriends values (7, 'Yunjo', 'Paris');
INSERT 0 1
mydb=# select * from myfriends;
 id |  name   | address
----+---------+---------
  1 | Yunho   | Goyang
  2 | Seonah  | Bucheon
  3 | Yongtae | Seoul
  4 | Dongeog | Gangnam
  7 | Younjo  | Paris
(5개 행)

-- 데이터를 추가한 후 테이블에서 데이터를 검색해 보면 지정한 값이 그대로 저장되어 있다. 
   이와 같이 자동 증가 타입이 설정된 컬럼에도 값을 지정하여 데이터를 추가 할 수 있다.
-- 여기에서 다시 id 컬럼에 지정하지 않고 디폴트값으로 데이터를 추가하면, 
   id 컬럼에 무슨 값이 들어가는지 확인하려고 한다.

mydb=# insert into myfriends (name, address) values ('Sueun', 'Yongin');
INSERT 0 1
mydb=# select * from myfriends;
 id |  name   | address
----+---------+---------
  1 | Yunho   | Goyang
  2 | Seonah  | Bucheon
  3 | Yongtae | Seoul
  4 | Dongeog | Gangnam
  7 | Younjo  | Paris
  5 | Sueun   | Yongin
(6개 행)

-- 데이터를 추가한 후에 테이블에서 데이터를 검색해 보면, 
   id 컬럼은 원래 다음으로 들어가려던 5가 저장된다.
-- 그럼, id 컬럼에 디폴트 값이 포함되도록 2개의 데이터를 더 추가해 보자.

mydb=# insert into myfriends (name, address) values ('Hansol', 'Seocho'), ('Yujin', 'Unknown');
INSERT 0 2
mydb=# select * from myfriends;
 id |  name   | address
----+---------+---------
  1 | Yunho   | Goyang
  2 | Seonah  | Bucheon
  3 | Yongtae | Seoul
  4 | Dongeog | Gangnam
  7 | Younjo  | Paris
  5 | Sueun   | Yongin
  6 | Hansol  | Seocho
  7 | Yujin   | Unknown
(8개 행)

-- id 컬럼에는 이전 저장된 값 5 다음으로 6과 7이 저장되어 있다. 
   이미 id 컬럼에 7이라는 값이 저장된 데이터를 수동으로 추가되었지만, 
   중복된 값이 있는지와는 상관없이 연속적인 값이 저장이 되었다.
-- 이와 같이 자동 증가 타입이 설정된 컬럼에 값을 지정하여 데이터를 추가 할 수도 있지만, 
   그 데이터는 자동으로 저장되는 값으로 반영되지 않는다는 점을 주의가 필요하다.


.

 

* http://www.devkuma.com/books/pages/1444 

반응형

+ Recent posts