일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Visual Studio 2015 설치
- Visual Studio 2015 삭제
- .NET Core
- Vue.config
- vue
- Visual Studio 강제 삭제
- .NET Core Proxy
- Tomcat Error
- vue.js
- Vue3 configureWebpack
- javascript
- 웹 크롤링
- Selenium 설치
- 웹 자동화
- MSSQL 문자열
- tomcat
- vue3
- SQLP
- MSSQL 동적 쿼리
- 디자인 패턴 사례
- 리버스 프록시 예제
- Vue configureWebpack
- spring
- Visual Studio 재설치
- Selenium 환경
- Visual Studio 패키지에 실패했습니다.
- 프록시 예제
- Visual Studio 2015 강제 삭제
- Nginx Reverse Proxy
- 업무 자동화
- Today
- Total
목록Database/SQL Server(MSSQL) (21)
금백조의 개발 블로그
서론 요즘 SQLP 취득을 위하여 SQL 전문가 가이드 2013 Edition 책을 읽고 있습니다. 읽은 내용 중 DML 튜닝 내용에서 각각의 INSERT, UPDATE DML문을 MERGE문으로 변환하여 One SQL로 효율적으로 처리할 수 있는 내용을 알게 되었습니다. 그래서 오늘은 MERGE문에 대해서 정리해보겠습니다. 본론 [구문 형식] MERGE INTO [타겟테이블] AS [테이블명칭1] USING [매핑테이블] AS [테이블명칭2] ON (매핑키 조건문) WHEN MATCHED THEN UPDATE SET ... WHEN NOT MATCHED THEN INSERT (...) VALUES (...); [장점] 1.하나의 SQL로 작성할 수 있어 효율적입니다. 2. 쿼리문을 좀 더 간결하게 작성..
서론 회사에서 같이 일을 하는 동료가 갑자기 저에게 퀴즈?를 주었습니다. 퀴즈의 내용은 아래와 같습니다. Q. SQL을 통해 조회하는 문자열의 각 한 글자 사이에 공백을 추가하여 조회하는 방법을 구현하시오. 예를 들어 'ALICE'라는 사원 이름 데이터를 'A L I C E'로 조회해야 했습니다. 저는 스칼라 사용자 정의 함수를 사용하여 기능을 구현했습니다. 이 과정 속에서 알게 된 스칼라 사용자 함수의 정의와 사용법에 대해 다뤄보겠습니다. 본론 [정의] 스칼라 함수 : 단일 값을 반환하는 함수입니다. [구문 형식] CREATE FUNCTION [dbo].[함수명](@INPUT1 [데이터타입], @INPUT2 [데이터타입]...) RETURNS [반환 데이터타입] AS BEGIN 함수 로직 구현... E..
서론 시스템 유지보수를 진행하면서 OUTER APPLY를 사용하는 쿼리를 접해본 적이 있습니다. 당시에는 LEFT JOIN과 동일한 결과를 반환할 수 있다는 정도만 알았었는데 이번 기회에 APPLY 연산자에 대해 좀 더 자세히 알고자 글을 작성했습니다. 본론 [구문 형식] SELECT .. FROM [외부 테이블] CROSS | OUTER APPLY (SELECT .. FROM [내부 테이블] WHERE [조인 조건자]) [정의] [CROSS APPLY] 내부 테이블(테이블 반환 함수)의 집합으로부터 조인 키로 결합한 외부 테이블의 행만을 반환합니다. [OUTER APPLY] 내부 테이블(테이블 반환 함수)의 집합으로부터 조인 키에 결합한 외부 테이블의 행 + 그렇지 않은 행 전부를 반환합니다. 그렇지 ..
서론 클라이언트에서 전달받은 데이터를 특정 테이블에 CREATE 또는 UPDATE 해야 하는 로직이 있었습니다. 클라이언트에서 전달받은 정보만으론 데이터를 CREATE 해야 하는지 UPDATE 해야 하는지 알 수 없는 상황이었습니다. 그래서 전달받은 데이터 집합과 특정 테이블의 데이터 집합의 차집합을 구하여 특정 테이블에 없는 데이터는 CREATE 하고 없는 데이터는 UPDATE 하는 로직을 생각하여 구현했습니다. 그 과정 속에서 알게 된 EXCEPT으로 차집합 구하는 방법을 예제를 통해 알아보겠습니다. 본론 [구문 형식] SELECT [컬럼1], [컬럼2], ... [컬럼N] FROM [테이블1] EXCEPT SELECT [컬럼1], [컬럼2], ... [컬럼N] FROM [테이블2] [특징] 1. 첫..
서론 개발을 진행하면서 SELECT, WHERE, ORDER BY절에서 CASE문을 통해 원하는 데이터를 추출했던 경험들이 있었습니다. 오늘은 그동안 사용해봤던 경험들을 토대로 SELECT, WHERE, ORDER BY절에서 CASE문을 활용하는 방법을 예제를 통해 소개해보겠습니다. 본론 [구문 형식] [SELECT CASE] SELECT CASE WHEN [조건식1] THEN [결과식1] WHEN [조건식2] THEN [결과식2] ... ELSE [조건식N] END [WHERE CASE] SELECT ... FROM ... WHERE CASE WHEN [조건식1] THEN 1 WHEN [조건식2] THEN 1 ... ELSE 0 END = 1 [ORDER BY CASE] SELECT ... FROM ...
서론 현업에서 프로젝트 개발 중에 NVARCHAR 문자열 컬럼에 숫자가 들어올 경우 세 자리마다 콤마( , )를 표기해줘야 하는 요구사항이 있었습니다. 해당 문자열이 숫자인지, 문자인지를 판단하여 세 자리마다 콤마를 표기해줘야 했으므로 ISNUMERIC을 사용하여 해결했습니다. 이 과정 속에서 알게 된 ISNUMERIC을 이용한 숫자, 문자 판단과 주의사항을 예제를 통해 알아보겠습니다. 본론 [구문 형식] ISNUMERIC([숫자, 문자를 판단할 컬럼]) [특징] INPUT 컬럼이 문자일 경우 0, 숫자일 경우 1을 반환합니다. [주의사항] +,- 기호와 같은 숫자가 아닌 일부 문자 또는 달러($)와 같은 통화 기호도 1을 반환하기 때문에 주의가 필요합니다. 따라서 입력되는 문자열 데이터가 (+), (-..
서론 평소에 임시 테이블을 생성할 시 CREATE DDL문을 직접 작성하여 생성했었습니다. 그런데 다른 분이 작성하신 쿼리를 보고 SELECT INTO문으로도 임시 테이블을 간편히 생성할 수 있다는 것을 알게 되었습니다. 이를 계기로 정리하게 된 SELECT INTO문으로 임시 테이블을 생성하는 방법을 예제를 통해 알아볼까 합니다. 본론 [구문 형식] SELECT [삽입할 컬럼1], [삽입할 컬럼2] ... INTO [#임시 테이블명] FROM [데이터를 가져올 테이블명] [특징] 1. 임시 테이블을 DDL문을 작성하여 생성하지 않아도 생성 가능해서 편리합니다. 2. 생성과 동시에 조회한 데이터를 INSERT 할 수 있습니다. 3.SELECT INTO문으로 생성한 임시 테이블의 컬럼 타입은 FROM절의 ..
서론 프로젝트에서 개발을 진행하면서도 세로로 된 데이터를 가로로 변환하여 표현해야 할 경우가 많았습니다. 이번 기회에 세로를 가로로 변환하는 방법을 예제를 통하여 정리해보겠습니다. 본론 만약 아래와 같이 품목그룹 별 품목에 대한 수량 데이터가 있다고 가정해보겠습니다. 요구사항이 품목그룹별로 각 품목의 수량들을 가로로 표현해달라고 할 경우 PIVOT을 사용하여 표현하는 예제입니다. 위의 데이터는 #TEMP_TABLE 임시 테이블에 생성했습니다. 1. [세로를 가로로 변환 예제(정적)] IF OBJECT_ID('tempdb..#TEMP_TABLE')--임시 테이블 남아있을시 삭제 IS NOT NULL DROP TABLE #TEMP_TABLE CREATE TABLE #TEMP_TABLE( ITEM_GROUP ..