본문 바로가기
반응형

 query 12 

img-skin-thumnail [MS-SQL] RAND 함수 활용하여 랜덤 일자(날짜), 시간 생성하기 RAND 함수 활용하여 랜덤 일자(날짜), 시간 생성하기 포스팅 개요 Query를 작성하다 보면 난수(Rand)를 생성하는 함수를 활용하여 작업할 경우가 많습니다. 오늘은 간단한 최소~최대 구간별 난수 생성 방법과 기준 일자 또는 기준 시간을 기점으로 랜덤 일자, 시간을 생성하는 방법에 대해 알아보겠습니다. 예제 쿼리 예제1. 최소 ~ 최대 구간별 난수 생성 방법입니다. DECLARE @R_Min INT, -- 최소 수치 @R_Max INT -- 최대 수치 -- 변수 설정 SET @R_Min = 1 SET @R_Max = 100 -- 구간별 난수 생성 SELECT CAST(((@R_Max + 1) - @R_Min) * RAND() + @R_Min AS INT) 예제2. 기준 일자 이후 랜덤 일자(날짜) .. 2023. 2. 8.
img-skin-thumnail [MS-SQL] 문자열에서 숫자만 추출하기 (스칼라 반환 함수) 문자열에서 숫자만 추출하기 (스칼라 반환 함수) 포스팅 개요 문자열에 포함된 숫자만 추출하는 함수입니다. 실행 시 '스칼라 반환 함수'로 생성되어 필요할 때마다 쉽게 적용이 가능하며 주로 보이는 그대로 저장된 금액(1,999,999), 일자(2023년 1월 1일) 등의 형식이 표함 된 숫자를 계산하기 위해 사용합니다. 예제 쿼리 먼저 사용할 데이터베이스에 다음의 쿼리를 실행합니다. -- 문자열에서 숫자만 뽑아내는 사용자 함수 CREATE FUNCTION [dbo].[fn_GetNumInString] ( @icur_num VARCHAR(50) ) RETURNS INT AS BEGIN DECLARE @i INT DECLARE @temp_num VARCHAR(50) SET @temp_num = '' SET @.. 2023. 1. 13.
img-skin-thumnail [MS-SQL] 특정 컬럼에서 소수점이 존재하는 레코드 조회하기 특정 컬럼에서 소수점이 존재하는 레코드 조회하기 포스팅 개요 원하는 데이터가 실수형 컬럼 또는 필드일 경우 소수점 여부를 확인하는 방법이 필요한 경우가 있습니다. 오늘 예제 쿼리문에서는 사용자 함수를 만들지 않고 바로 적용 가능한 쿼리로 준비하였습니다. 사용되는 기본 함수는 ROUND 함수와 FLOOR 함수와 사용합니다. 각 함수의 간단한 특징을 살펴보겠습니다. ROUND 함수는 특정 길이나 전체 자릿수로 반올림한 숫자 값을 반환합니다. FLOOR 함수는 지정된 숫자 식보다 작거나 같은 최대 정수를 반환합니다. 예제 쿼리 이번 포스팅에서는 테스트용 테이블을 조금 수정하겠습니다 (하단에 쿼리 포함) 예제(1) 소수점이 존재하는 레코드만 검색하기 -- 소수점이 존재하는 레코드만 검색하기 SELECT * FR.. 2023. 1. 5.
img-skin-thumnail [MS-SQL] 그룹별 ROW(행) 문자열 결과 합치기 (STUFF, FOR XML PATH 활용) 그룹별 ROW(행) 문자열 결과 합치기 (STUFF, FOR XML PATH 활용) 포스팅 개요 오늘 포스팅 예제 쿼리는 검색한 테이블의 ROW(행) 문자열의 결과를 원하는 방식으로 합쳐서 표기하는 방법입니다. 다만 사용되는 구문의 의미는 이해하기가 어려우니 규칙성을 인지하여 상황에 맞게 대응하는 것이 좋습니다. 예제 쿼리의 STUFF는 MSDN에서는 "다른 문자열에 문자열을 삽입합니다"라고 정의되어 있습니다. 예제 쿼리의 FOR XML PATH는 MSDN에서 "SELCT 결과를 XML 형태로 반환하는 FOR XML문의 PATH 모드"라고 정의 되어있습니다. 이제 예제 쿼리를 확인하기 전 아래의 그림을 참고하여 테스트 결과를 미리 확인해 보시길 바랍니다. 예제 쿼리 지난 포스팅에서 사용한 TEST 테이블.. 2023. 1. 3.
img-skin-thumnail [MS-SQL] 중복 테이블 삭제 후에 다시 테이블 생성(CREATE)하기 중복 테이블 삭제 후에 다시 테이블 생성(CREATE)하기 포스팅 개요 MS-SQL은 이미 SSMS(SQL Server Management Studio)라는 강력한 툴이 존재하여 비교적 간단하게 테이블 생성이 가능합니다. 하지만 관계형 데이터베이스(RDBMS)를 사용하려면 반드시 DDL(Data Definition Language : 데이터 정의 언어)을 숙지하여야 합니다. 오늘 포스팅에서는 DDL의 생성(CREATE), 수정(ALTER), 삭제(DROP) 중 CREATE 문의 작업 전에 중복 테이블을 발견하고 삭제하는 방법을 예제로 작성해 보겠습니다. 아래 예제를 그대로 적용하시면 중복 테이블을 삭제하고 작업이 진행되니 조심하셔야 됩니다. IF와 OBJECT_ID([테이블명]) 조합을 이용한 테이블 검.. 2023. 1. 2.
img-skin-thumnail [MS-SQL] 다중 레코드 INSERT 하기 다중 레코드 INSERT 하기 포스팅 개요 저는 주로 레코드를 추가할 때 다음 3가지 방식을 가장 많이 사용합니다. 단일 레코드 추가 방식 예) INSERT INTO Table_name (컬럼1, 컬럼2, ...) VALUES (Val1,Val2,...) 다중 레코드 추가 방식 예) INSERT INTO Table_name (컬럼1, 컬럼2, ...) VALUES (Val1,Val2,...),(Val3,Val4,...),(Val5,Val6,...) 파일에서 데이터를 가져와 추가하는 방식 예) BULK INSERT dbo.Table_name FROM 'C:\Downloads\Data_File.csv' WITH (옵션) 오늘 포스팅에서는 위 방식 중 다중 레코드 방식에 대해서 알아보겠습니다. 구조는 단일 레.. 2022. 12. 24.
img-skin-thumnail [MS-SQL] DB 로그삭제(파일축소) - Version 4 일괄적용 DB 로그삭제(파일축소) - Version 4 일괄적용 포스팅 개요 서버의 모든 DB 정보를 불러오는 'sys.databases' 테이블을 참고하여 모든 사용자 DB의 로그 삭제(축소) 작업을 일괄로 진행하는 쿼리입니다. 그럼 오늘 포스팅 예제 쿼리의 목적과 장점에 대해 먼저 알아보겠습니다. 트랜잭션 로그(transaction log)의 한계까지 가득 차 에러가 생길 때 사용합니다. 하드디스크 용량이 부족할 정도로 로그 크기가 커졌을 때 사용합니다. Sql Server 2005 이상을 기준으로 작성되었습니다. 아래 그림은 시스템 데이터베이스와 사용자 데이터베이스를 구분하는 방법입니다. 예제 쿼리 Version 1 부터 꾸준히 보완하였고 사용자 DB만 불러와 일괄로 처리하도록 완성하였습니다. 'sys.da.. 2022. 12. 23.
img-skin-thumnail [MS-SQL] DB 로그삭제(파일축소) - Version 3 단일적용(간단2) DB 로그삭제(파일축소) - Version 3 단일적용(간단2) 포스팅 개요 이전 Version과 큰 차이점은 데이터베이스 이름을 변수로 받아 사용하기 위한 전체적인 구문 변환입니다. 자세한 내용은 마지막 참고 링크를 통해 이전 Version의 내용을 확인하시면 됩니다. 그럼 예제 쿼리의 목적과 장점에 대해 먼저 알아보겠습니다. 트랜잭션 로그(transaction log)의 한계까지 가득 차 에러가 생길 때 사용합니다. 하드디스크 용량이 부족할 정도로 로그 크기가 커졌을 때 사용합니다. Sql Server 2005 이상을 기준으로 작성되었습니다. 이전 Version들과의 실행 결과 부분에서는 큰 차이가 없습니다만 사용자 프로시저로 생성하기 더 쉬워졌으며 다른 방향으로의 활용도 가능해졌습니다. 예제 쿼리 .. 2022. 12. 22.
img-skin-thumnail [MS-SQL] DB 로그삭제(파일축소) - Version 2 단일적용(간단1) DB 로그삭제(파일축소) - Version 2 단일적용(간단1) 포스팅 개요 Version 1에서 동적 쿼리 방식을 이용한 Version 2 방식입니다. 자세한 내용은 마지막 참고 링크를 통해 확인하시고 오늘 포스팅한 예제 쿼리의 목적과 장점에 대해 먼저 알아보겠습니다. 트랜잭션 로그(transaction log)의 한계까지 가득 차 에러가 생길 때 사용합니다. 하드디스크 용량이 부족할 정도로 로그 크기가 커졌을 때 사용합니다. Sql Server 2005 이상을 기준으로 작성되었습니다. 이전 글 Version 1 단점이었던 [DB_NAME], [DB_NAME_Log]의 명칭을 자동으로 가져와 적용하기에 더 간편해졌습니다. 예제 쿼리 이전 버전과는 다른 점은 [DB_NAME]만 정확하게 적어주면 Log .. 2022. 12. 10.
728x90
반응형