BACKEND/MSSQL
10
MSSQL :: 데이터 정렬(COLLATE)
2024.04.25
SQL Server의 데이터 정렬은 데이터에 대한 정렬 규칙과 대/소문자 및 악센트 구분 속성을 제공한다. 서버, DB, 열 또는 식의 데이터 정렬을 선택하게 되면 데이터에 특정 특성이 할당되게 된다. 이런 특성은 여러 DB 작업의 결과에 영향을 주는데.. 예를 들어 Order by를 사용하여 쿼리를 만든 경우, 결과 집합의 정렬 순서는 쿼리의 식 수준에서 Collate 절에 지정되거나 DB에 적용된 데이터 정렬에 따라 달라지게 됨. 지원하는 언어SELECT * FROM sys.fn_helpcollations() 위의 쿼리로 지원하는 언어 SET 의 종류를 확인해볼 수 있다. 총 5,540건. 이 중 Korean으로 시작되는 정렬 문자열에 대해 알아보자.!! Korean과 관련되는 언어SETSELECT ..

MSSQL :: 특정 컬럼에서 데이터 길이가 가장 긴 문자열 ROW 찾기
2024.01.11
How select * from 테이블명 where len(컬럼명) = (select max(len(컬럼명)) from 테이블명); Result itemName 이 제일 긴걸 찾아달라고 했음. 검색하니까 전부 오라클 기준 문법만 나와서 메모해둠.
MSSQL :: date format 날짜 형식들
2024.01.09
Convert Datetime 과 관련된 것들.. Date Format 문법 CONVERT([포맷(크기)], [날짜값], [변환형식]) Date Format 의 날짜 형식들 SELECT GETDATE()-- 2024-01-09 05:48:47.190 SELECT CONVERT(VARCHAR, GETDATE(), 0)-- Jan 9 2024 5:48AM SELECT CONVERT(VARCHAR, GETDATE(), 1)-- 01/09/24 SELECT CONVERT(VARCHAR, GETDATE(), 2)-- 24.01.09 SELECT CONVERT(VARCHAR, GETDATE(), 3)-- 09/01/24 SELECT CONVERT(VARCHAR, GETDATE(), 4)-- 09.01.24 SELE..

MSSQL :: SET STATISITCS
2024.01.05
쿼리를 짜다보면 쿼리 성능 분석이 필요한 케이스가 생긴다. 그때 사용하는 것이 SET STATISTICS. 관련된 셋팅에 대해 알아보도록 하겠다. 실행 통계 정보와 관련된 IO SET STATISTICS IO ON SET STATISTICS IO OFF Statistics 의 IO 옵션을 켜면 통계 정보가 표시된다. 이런 식으로 message 창에서 확인이 가능하다. 확인할 수 있는 정보 Table 테이블 정보 Scan Count 실행된 검색 수 Logical Reads 리적 읽기 수. 데이터 캐시에서 읽은 페이지 수. Physical Reads 물리적 읽기 수. 디스크에서 읽은 페이지 수. Read-ahead Reads 미리 읽기 수. 쿼리에 대해 캐시에 넣어진 페이지 수 LOB Logical Read..
MSSQL :: 문자열 크기 순으로 정렬
2024.01.03
문자열 큰 것 부터 보고 싶을 때가 있는데.. 그때 사용할 수 있는 sql 문 tip. 길이를 구하는 LEN() 함수를 사용하자! 문법 SELECT * FROM (테이블명) ORDER BY LEN(컬럼명) DESC 사용 SELECT * FROM [ADM].[com_Terms] ORDER BY LEN(TermsDesc) DESC -- 크기 큰 것부터 정렬 SELECT * FROM [ADM].[com_Terms] ORDER BY LEN(TermsDesc) DESC -- 크기 작은 것부터 정렬
MSSQL :: INSERT 여러 개 한번에 하기
2024.01.02
INSERT INTO 테이블 VALUES ('A', 'AA', 27) , ('B', 'BB', 26) , ('C', 'CC', 25) 위의 형식으로 넣으면 되는데.. 예제는 아래와 같다. INSERT INTO [ADM].[com_Terms] ( TermsType , TermsId , TermsSeq , LanguageType , TermsDesc , UseYn , CreateUserId , CreateDt , UpdateUserId , UpdateDt ) VALUES( 'TERM' , 'Close' , '1' , 'EN' , 'Close' , 'Y' , 'neeon' , ADM.FN_GETDATE(0) , 'neeon' , ADM.FN_GETDATE(0) ), ( 'TERM' , 'Close' , '1'..

mssql :: SSMS 반자/전자 전환 해결
2
2023.11.30
SSMS 를 사용하여 쿼리를 작성하다 보면 한번씩 멋대로 글씨체가 띄워쓰기 한 것처럼 나타날 때가 있다 . . . 이걸 전자/반자 라고 한다던데. . . 대충 아래와 같은 형태로 글씨체가 나타나게 된다 S E L E C T * F R O M t a b l e 해결 방법 1. 윈도우 키 > '설정' 검색 > '시간 및 언어' 2. '언어 및 지역' 클릭 3. 한국어의 '...' 클릭하여 '언어 옵션' 선택 4. Microsoft 입력기 > ... 클릭 > '키보드 옵션' 선택 5. '호환성'의 '이전 버전의 Microsoft IME' 를 '켬' 으로 변경
SQL :: 상위 N개 데이터 출력하기 (mssql, oracle, mysql)
2023.09.14
1. MSSQL SELECT TOP 100 name, age, dept from [table명]; 2. ORACLE SELECT name, age, dept from [table명] where rownum
MSSQL :: CTE 란?
2023.08.25
CTE (Common Table Expression: 공통 테이블 식) - 기존의 뷰, 파생 테이블, 임시 테이블 등으로 사용되던 것을 대신 할 수 있으며, 더 간결한 식으로 보여지는 장점을 가짐 - 실제로 CTE라는 키워드가 코드 안에 들어가지는 않고, WITH 구문을 이용함. - SELECT문을 미리 정의하여 이름을 붙인 후, 이어지는 쿼리에서 테이블처럼 사용하는 기능 - CTE는 바로 다음에 오는 select절에만 해당 CTE를 이용할 수 있음. - 목적에 따라 비재귀적 CTE, 재귀 CTE로 나눌 수 있음. 재귀 CTE - 최초 CTE가 반복적으로 실행되어 전체 결과 집합을 얻을 때까지 데이터의 하위 집합을 반환하는 CTE - 계층적 데이터를 반환하기 위한 목적으로 사용됨 - (**) 재귀 CTE..

MSSQL :: 일반적인 형식의 데이터를 깊이 값을 추가하여 표기
2023.08.24
BEFORE 대강 위와 같은 raw data 가 있다. 나는 front-back 양단 가공을 통해서 트리 형태의 데이터에 도달하여야 한다. 이런 모양이 되어야 한다. AFTER 프론트 단에서 mui treeview 를 쓸거긴 하지만.. 우선 어떻게 될지 몰라 level 과 display_number, PID(Parents ID)를 채번하는 형식으로 바꿔두었다. json 으로 parent-child 형식으로 가져오는 것이 베스트이겠지만, mssql 을 어떤 식으로 주물러야 그렇게 완성되는 지 사실 잘 모르겠다.. 찾아봐도 온통 하드코딩 하는 것 뿐이고, (약 3000건의 데이터를 어떻게 하드코딩?) 재귀를 쓰더라도 ID 가 채번되어 있는 상태에서 parentID 를 가지고 있어야 한다. 고로 가공을 한번 ..