본문 바로가기

IT_Developers/MSSQL34

MSSQL - order by 에 case로 조건절 걸기 정렬을 동적으로 바꾸기 MS도구 들이 언어들이 모드 그렇지만 편의성을 많이 제공한다.이게 장점일수도 단점일수도 있지만.(요즘 들어 단점이라 생각이 든다.)하여튼 MSSQL 은 참 편리하다. 프로시져 개발하기 가장 좋은 매니저먼트를 제공하기 때문에인풋과 아웃풋만 정해주면 자유롭게 프로시져 안에서 로직을 구현할수 있다. 그중에 가장 많이 쓰는 방법인 CASE를 활용해 정렬을 바꾸어 보려고 한다.하지만 이 방법은 성능적으론 추천하지 못한다.조금 간단하고 데이터가 적은 로직에 쓰길 바란다.(참고로 CASE를 이용한 조건절 바꾸기는 타 DB에도 쓸수 있다.) 아래 쿼리를 확인해보자Order by 안에 CASE를 활용 하여 IF를 걸었다.그리고 해당 값일 경우 컬럼의 정렬을 바꾼다 BEGINDECLARE @ORDE.. 2017. 11. 14.
MSSQL - 음수 양수 분별 방법 MSSQL 에서 음수 양수를 구별하기 프로시져를 만들다 보면 결과값이 음수 혹은 양수일지 구별해야 하는 경우가 생긴다(상당히 자주 존재한다) 그래서 오늘은 mssql 에서 음수 양수를 구분하는 방법을 알아보자방법은 간단하다. sign 함수를 이용하면 된다 아래 쿼리를 실행해보자 select sign(-1) select sign(0) ▼아래처럼 숫자 크기와 상관없이 결과값을 도출한다. 마무리개발도 재밌지만 정리하는 재미도 즐겁습니다. 2017. 11. 7.
MSSQL - 작은 따옴표 쉽게 처리하기 MSSQL 에서 쌍따옴표 사용하기 안녕하세요. 고코더입니다.오늘은 MSSQ에서 작은 따옴표를 자유롭게 사용하는 법을 다루어 보겠습니다. ▼MSSQL 매니지먼트를 실행 하여 아래 구문을 실행해봅시다.select "'", "'a'",'', ▼ 볼것도 없이 오류 빨간 라인이 그려집니다.MSSQL은 해당 처럼 쌍따옴표를 쓸수가 없습니다. 작은 따옴표를 자주 쓰는 경우 이를 쌍따옴표로 묶어서 보기 편하게 써보고 싶을 때가 있습니다.물런 작은 따옴표를 두번 쓰면은 문자로 인식이 됩니다.그럼 가독성도 떨어지기 마련이다. 작은 따옴표 행렬을 보고 있으면 머리가 아프죠 ▼ 이번엔 아래 쿼리를 실행해보자set quoted_identifier offselect "'", "'a'" ▼ 놀랍게도 오류 라인은 없어지고 쌍따옴표 .. 2017. 11. 7.
MSSQL - 0으로 나누기 오류 방지하기 MSSQL 0을 Null로 반환하여 isnull로 처리하기 MSSQL 에서 0으로 나눌시에는 오류가 발생한다. 0으로 숫자를 나눈건 로직이 잘못됐거나 모델링 잘못된 것이다.하지만 .. 사람 맘 같이 세상이 움직이겠는가..결국은 숫자가 꼬이고 꼬이면 0으로 나누고 결국 오류가 발생할것이다.오늘은 그래서 MSSQL에서 0으로 나누기 오류를 대비하는 법을 배워보겠다. 우선 아래처럼 쿼리를 MSSQL매니저먼트에서 실행해보자 SELECT 1000 / 0 ▼ 당연히 오류가 발생하였다. 수학에선 0으로 숫자를 나눌수 없다. 이번엔 이 쿼리를 실행해보자SET ANSI_WARNINGS OFFSET ARITHIGNORE ONSET ARITHABORT OFFselect 100 / 0 ▼ 아래처럼 NULL 이 반환 됐다. (.. 2017. 11. 6.
MSSQL - Management Studio 매니저먼트 설치 MSSQL 매니지먼트 스튜디오 설치 이시간에는 MSSQL 학습을 위해 GUI를 다운로드 및 설치를 해보겠습니다. 우선 해당 URL로 이동!https://www.microsoft.com/ko-kr/download/details.aspx?id=46697 ▼ 해당 페이지에서 다운로드를 클릭한다. ▼ 자신에 맞는 비트 환경과 끝에 ADV가 붙은걸 클릭합니다. (제일 용량 큰거) ▼ 다운로드 후 실행하면 아래처럼 압축이 풀립니다. ▼ 아래 처럼 기본 선택된 설정을 믿고 다음 클릭 ▼ 인스턴스를 명명한다. SQLEXPRESS로 하자. ▼ 역시 기본 설정을 믿고 다음 ▼ 혼합 모드로 비번을 입력한다 비번은 tiger로 하자 ▼ 설치가 진행된다. 생각보다 조금 걸립니다. ▼ 설치 후 로그인 방법은 두가지 입니다. Wi.. 2017. 7. 11.
MSSQL - EXISTS 사용 방법 MSSQL EXISTS 사용 방법 MSSQL 하면 프로시져 만들기 참 좋다. MSSQL 매니지먼트 스튜디오가 편해서 그럴것이다. 실무에서 가장 많이 쓰고 헷갈리는 내장객체는 EXISTS 일것이다. 테이블을 검색해서 값이 있을때와 없을때를 구분한다. IF EXISTS( SELECT * FROM 테이블 WHERE ID = @ID ) BEGIN --//SELECT문의 결과값이 존재하면 진입 END ELSE BEGIN --//SELECT문의 결과값이 없을 경우에 진입 END 그리고 반대로 하고 싶으면 NOT EXISTS 를 사용하면 된다. IF NOT EXISTS( SELECT * FROM 테이블 WHERE ID = @ID ) BEGIN --//SELECT문의 결과값이 없을 경우에 진입 END ELSE BEGI.. 2017. 7. 11.
MSSQL - 프로시져 RAISERROR 예제, 프로시저 오류 캐치하기 MSSQL에서 RAISERROR 예제, 프로시저 오류 캐치하기 프로시져 오류시에 캐치할수 있는 방법이다.현재 사용하는 프로시져 맨위와 아래에 입력하면 끝성공과 실패 후에 액션도 만들어야겠죠? DECLARE @V_ERR INTSET @V_ERR = 0 BEGIN---------------------------------------------------------------------/// 프로시져 실행------------------------------------------------------------------- ENDSET @V_ERR = @@ERRORIF @V_ERR 0BEGINRAISERROR('오류가 발생하였습니다.!!', 16, 1)RETURN @V_ERREND 마무리오류가 발생시 에러 내.. 2017. 7. 6.