인공지능이 똑똑하긴 하네요. 그래서 편리하기도 하고 배울것도 많은것 같습니다.테이블 설계에 대해서 ChatGPT와 질의응답한 부분 공유해 봅니다. 질문>> ms-sql 테이블 설계시 8bit씩 끊어서 설계하면 성능에 이점이 있나요? 예를들어 nvarchar(8), nvarchar(16), nvarchar(32)... 답변 MS-SQL에서 테이블을 설계할 때, nvarchar(n) 타입을 8바이트 단위로 끊어서(nvarchar(8), nvarchar(16), nvarchar(32) 등) 설계한다고 해서 성능이 반드시 향상되는 것은 아닙니다. 다만, 몇 가지 고려해야 할 점이 있습니다.🔹 결론: nvarchar(n)을 8바이트 단위로 맞추는 것은 성능 최적화와 직접적인 관련이 없음nvarchar는 가변 길..
SQL
FORMAT 함수는 SQL Server 2012 이상에서 지원되며, 날짜, 시간, 숫자 등 다양한 데이터를 특정 형식으로 변환하여 문자열로 반환하는 매우 유용한 함수입니다FORMAT(value, format, [culture]) value: 변환할 값 (날짜, 시간, 숫자 등).format: 변환할 형식. .NET의 표준 서식 문자열을 사용합니다.culture (선택): 지역 문화권을 지정하는 문자열(예: 'en-US', 'ko-KR'). 생략 시 서버의 기본 문화권이 사용됩니다.주요 형식format에 사용할 수 있는 형식 문자열은 아래와 같습니다.1. 날짜/시간 서식서식 문자열설명예시 (2025-01-22 14:45:30)yyyy4자리 연도2025yy2자리 연도25MM2자리 월01dd2자리 일22hh1..
문법CONCAT(string1, string2, ..., stringN) string1, string2, ..., stringN: 연결할 문자열 또는 값을 지정합니다.최소 2개 이상의 인수를 받아야 하며, 최대 인수 개수는 254개입니다.특징자동 데이터 타입 변환: 숫자, 날짜, 또는 기타 데이터 타입을 문자열로 자동 변환하여 연결합니다.NULL 처리: NULL 값은 빈 문자열로 처리되며, 결과에 영향을 미치지 않습니다.간단한 사용법: + 연산자보다 직관적이고, 데이터 타입 변환을 별도로 지정할 필요가 없습니다.사용 예제1. 기본 문자열 연결SELECT CONCAT('Hello', ' ', 'World') AS Result;-- 결과: Hello World2. 숫자와 문자열 연결SELECT CONCAT(..
아래와 같이 파라메타 시작일, 종료일을 조건으로 지정하면 됩니다. SELECT * FROM [테이블명] WHERE 컬럼종료일 >= @시작일 AND 컬럼시작일
1. SELECT TOP 갯수를 변수로 받아서 사용하는 방법 Declare @ROW_COUNT int = 30 SELECT TOP(@ROW_COUNT) * FROM [테이블명] 2. WHERE 조건에 변수 있으면 해당 컬럼이 검색되고, 값이 없으면 전체가 검색되는 방법 parameter @USE_FLAG_IN SELECT * FROM [테이블명] WHERE ((@USE_FLAG_IN = '' AND 1=1) OR (@USE_FLAG_IN '' AND USE_FLAG = @USE_FLAG_IN)) AND CO_CODE = @CO_CODE AND DIV_CODE = @DIV_CODE ORDER BY FULL_ORDER 3. WHERE 조건에 검색구분, 검색 값을 동적으로 받아서 사용하는 방법 DECLARE ..
특정날짜를 입력 받아 주간 기준으로 연장근무 가능시간 계산하는 로직을 공유합니다. 1. 주간 연장근무 가능시간 계산 하기 1) 계산식 (모든항목 분으로 환산하여 계산) - @가능시간 = @주간최대근무시간 - @근무시간 + @휴가시간 - @연장근무시간 2) 주간최대근무시간 (법정근로시간 52시간 기준) - @주간최대근무시간 = 52 * 60 3) 근무시간 (weekday를 이용하여 계산) - datepart(weekday)는 일요일 시작으로 순서대로 1(일),2(월),3(화),4(수),5(목),6(금),7(토) 숫자값을 출력 한다. - @근무시간 = 8 * (@weekday -1) * 60 4) 휴가시간 5) 연장근무시간 2. 쿼리 예시 CREATE FUNCTION [dbo].[GET_AVAILABLE_T..
1. Service Broker 활성화 ALTER DATABASE MyDatabase SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE GO SELECT is_broker_enabled FROM sys.databases WHERE name = 'MyDatabase' 출처: https://stackoverflow.com/questions/29172828/can-i-turn-on-service-broker-on-all-my-databases
동적쿼리를 사용하지 않고 전체조건 및 부분조건을 조회할 수 있는 쿼리 /* @param1 값 범위 '' : 전체 0 : 사용안함 1 : 사용 */ Declare @param1 SELECT * FROM 테이블명 A WHERE ((@param1 = '' AND 1=1) OR (@param1 '' AND A.조건필드 = @param1))