본문 바로가기

Database11

SQL Server - 그룹별 행 데이터 병합 / 구분자로 Merge 하기 ## 네이버 블로그에 포스팅한 내용 옮겨오기   SQL Server에서 행 데이터 합치는 법 (구분자로 Merge하는법)  1. STRING_AGGSELECT STRING_AGG([Merge할 컬럼명], '구분자') WITHIN GROUP(ORDER BY [정렬 컬럼명]) -- 정렬 필요한 경우 WITHIN GROUP절 사용FROM [테이블명]GROUP BY [그룹 컬럼명]-- 예시: Product 테이블에서 ProductName 컬럼을 seq 순서로 정렬 후 |로 구분하여 OrderID별로 합치기SELECT STRING_AGG(ProductName, '|') WITHIN GROUP(ORDER BY seq) FROM ProductGROUP BY OrderID   2. FO.. 2024. 5. 3. 13:03
SQL Server - 데이터 중복제거 및 정렬 동시에 하기 ## 네이버 블로그에 포스팅한 내용 옮겨오기  SQL Server에서 중복제거 및 정렬 동시에 하기 중복제거로 자주쓰는 DISTINCT 키워드와 정렬문인 ORDER BY절에 오는 정렬 컬럼이 상이해서 같이 쓰기 곤란한 경우 ROW_NUMBER ~ PARTITION BY 절을 사용해보자.  SELECT ROW_NUMBER() OVER (PARTITION BY [중복제거컬럼] ORDER BY [정렬컬럼])FROM [테이블명] -- 예시: Product 테이블에서 ProductID, seq 컬럼으로 중복제거 후 OrderDate 순서로 정렬하기SELECT ProductID , seq , OrderDate , ROW_NUMBER() OVER (PARTITION BY ProductID,.. 2024. 5. 3. 13:00
SQL Server 변수에 SELECT 쿼리 결과 저장 SELECT 쿼리 결과를 변수에 저장 방법 1. 결과 행수 저장이 필요한 경우 @@ROWCOUNT 사용 SELECT @cnt = @@ROWCOUNT 방법 2. SELECT 절에서 변수에 할당 SELECT @cnt = log_cnt FROM Logdb.dbo.log_dtl WHERE log_id = 1 방법 3. 2번 방법의 쿼리를 SET절에 입력 SET @cnt = ( SELECT log_cnt FROM Logdb.dbo.log_dtl WHERE log_id = 1 ) 참고자료 https://itworldyo.tistory.com/180 2024. 4. 4. 22:20
SQL Server 테이블 락 조회 SQL Server 테이블 락 조회 SELECT DTL.resource_type, CASE WHEN DTL.resource_type IN ('DATABASE', 'FILE', 'METADATA') THEN DTL.resource_type WHEN DTL.resource_type = 'OBJECT' THEN OBJECT_NAME(DTL.resource_associated_entity_id, SP.[dbid]) WHEN DTL.resource_type IN ('KEY', 'PAGE', 'RID') THEN ( SELECT OBJECT_NAME([object_id]) FROM sys.partitions WHERE sys.partitions.hobt_id = DTL.resource_associated_entit.. 2024. 3. 27. 21:16
SQL Server 보안 개념 SQL Server 보안 개념 2023.08.16 (수) - 계정을 통한 접근 권한 관리 > 총 4단계 (로그인+사용자+권한+역할) * 인증 유형 - 윈도우 인증 : 윈도우 계정 정보로 SQL Server에 연결 - 서버 인증 : OS와는 별개의 ID/PW로 인증하여 SQL Server에 연결 1) 로그인 SQL Server에 접속이 가능한 수준을 의미 2) 사용자 각 데이터베이스 단위로 접근할 수 있는 단위 (기본값) > dbo : 데이터베이스 소유자 > guest : 모든 로그인에 대해 자동으로 접근이 허용된 사용자 > sys/INFORMATION_SCHEMA : 데이터베이스 내부의 시스템 개체를 참조하기 위한 사용자 3) 권한 개체를 사용하거나 명령문을 수행하는 단위 권한 종류 - 개체 사용 권한 .. 2024. 2. 22. 15:21
SQL Server - Identity 값 불러오기 Identity 값 출력 - 현재 세션 기준 -- INSERT문과 동시에 실행 필요 SELECT @@IDENTITY - 전체 세션 기준 SELECT IDENT_CURRENT('테이블명') 참고 자료 https://kuaaan.tistory.com/42 2024. 2. 14. 17:53
Oracle 데이터 형식 Oracle 자주 사용하는 데이터 형식 데이터 형식 설명 CHAR(n) 고정길이 문자 VARCHAR2(n) 최대 2,000 byte 가변길이 문자 LONG 최대 2GB 가변길이 문자 NUMBER 40자리 숫자 (소수점 이하 저장 불가) NUMBER(n, a) 소수점 자리를 포함한 n자리 숫자 DATE 날짜 TIMESTAMP(n) 타임스탬프 형식의 날짜 2024. 2. 6. 14:50
Oracle 21C XE 설치 및 세팅 2023.12.06 Oracle 21C XE 설치 & 세팅 절차 1. Oracle Database 21C XE 다운로드 아래 링크에서 Express Edition 설치 파일 다운로드 받기 https://www.oracle.com/kr/database/technologies/xe-downloads.html setup.exe 파일 열어서 설치 system 비밀번호 설정 (★중요) 2. Oracle SQL Developer 다운로드 아래 링크에서 SQL Developer 설치 파일 다운로드 받기 (JDK 포함/미포함 여부 확인) https://www.oracle.com/kr/database/sqldeveloper/ sqldeveloper.exe 파일로 실행 새 접속 클릭 - 사용자 이름 : system (⇒ .. 2024. 2. 6. 14:29
SQL Server - SET 옵션 SQL Server SET 자주쓰는 옵션 정리 ① SET ANSI_NULLS SET ANSI_NULLS ON : NULL = NULL 비교 시 값 반환 불가 ([컬럼명] IS NULL) SET ANSI_NULLS OFF : NULL = NULL 비교 시 TRUE값 반환 ([컬럼명] = NULL) ② SET QUOTED_IDENTIFIER SET QUOTED_IDENTIFIER ON : 큰따옴표(" ")는 개체 이름으로, 작은따옴표(' ')는 문자열로 사용 SET QUOTED_IDENTIFIER OFF : 큰따옴표 (" ") 및 작은따옴표(' ')를 모두 문자열로만 사용 ③ SET NOCOUNT SET NOCOUNT ON : 영향을 받은 행 수 메시지를 리턴값으로 받지 않음 SET NOCOUNT OFF :.. 2023. 4. 8. 12:09