개발관련기록/SQL Server(9)
-
[MSSQL]자릿수에 맞게 특정 문자 채우기
REPLICATE 함수를 사용해서 특정 문자로 채웁니다. * 특정 문자 : '0'* 대상 문자 : '4321'* 자리수 : 7자리* 출력 결과 : '0004321' (좌측으로 붙이기), '4321000' (우측으로 붙이기) 좌측으로 붙이기SELECT REPLICATE(특정 문자, 자리수 - LEN(대상 문자)) + 대상문자SELECT REPLICATE('0', 7 - LEN('4321')) + '4321' 우측으로 붙이기SELECT 대상문자 + REPLICATE(특정 문자, 자리수 - LEN(대상 문자))SELECT '4321' + REPLICATE('0', 7 - LEN('4321')) EDI 문서 제작 시 자리수에 맞춰 숫자를 넘겨줘야 하는 요구사항을 만족하기 위해 사용했습니
2013.08.02 -
레코드 동적 컬럼으로 바꾸는 방법(Pivot 이용)
출처 : http://skymong9.egloos.com/1836594 [MSSQL] PiVOT 함수 간단한 쿼리 구현~! my dev_study by 하늘몽구 2010/12/31 16:42 skymong9.egloos.com/1836594 덧글수 : 0 MS SQL 서버 2005에서는 PIVOT 함수와 UNPIVOT 함수를 제공하고 있습니다. 이 기능을 이용하면 피벗 테이블을 쉽게 작성 할 수 있습니다. 하지만 기본적으로 제공되는 기능만을 이용하면 동적인 피벗 테이블을 구현 할 수 없습니다. 이를 해결 할 수 있는 방법 한 가지를 같이 살펴보고자 합니다. 1. 테이블 생성 다음과 같은 테스트에 사용할 테이블을 만들도록 하겠습니다. USE tempdb GO CREATE TABLE Orders ( Cust..
2013.04.11 -
UPDATE INNER JOIN
UPDATE ASET A.CADPT = B.CADPTFROM BSSTP AINNER JOIN TEMP_CODE_NWORK BON A.NCSCD = B.NCSCD
2013.02.08 -
[DB_Tuning]INDEX 설정 방법
DB 인덱스 설계 물리 데이터베이스 설계에서 가장 중요한 고려사항은 데이터베이스 성능 향샹이다. 데이터 모델에 반정규화를 적용하고 저장 방식을 통하여 성능향상을 꾀할 수 있지만, 데이터베이스 성능에 가장 영향을 주는 요인은 각 테이블에 걸려있는 인덱스이다. 인덱스(Index)란 테이블의 row를 식별할 수 있도록 컬럼값과 그 값을 포함하는 row의 논리적인 주소를 별도의 저장 구조를 만들어 저장하는 것이다. 인덱스를 이용하여 테이블에 존재하는 데이터 검색 속도를 빠르게 한다. 프로젝트를 진행하면서 데이터베이스, 데이터의 내용, 프로세스의 내용이 변하기 때문에 설계 단계에서 모든 인덱스를 정의하는 것은 불가능 하다. 설계 단계에서는 PK와 FK 및 테이블에 접근하는 방법이 분명하게 드러나는 컬럼에 대해서 ..
2011.09.01 -
[DB] OVER PARTITON 대체 사용
SELECT RANK () OVER (PARTITION BY r_id, o_code ORDER BY status_cd DESC, c_stnd_ymd DESC, o_code) AS RANK, r_id, nh_time, c_stnd_ymd, tunit_code, lg_code,status_cd, o_code FROM Table RANK () OVER (PARTITION BY 이 부분을 대체 할 수 있는 함수가 있나요? 답변 SELECT ROWNUM AS "RANK", B.r_id, B.nh_time, B.c_stnd_ymd, B.tunit_code, B.lg_code, B.status_cd, B.o_code FROM ( SELECT A.r_id, A.nh_time, A.c_stnd_ymd, A.tunit_..
2011.09.01 -
[SQL] where 절에 case when 구문을 이용한 방법 in, between 등등
Select 이름 From Emp Where (Case When Length(:v1) = 0 Then 1 Else Instr(이름, :v1) End) in(0) 이런식으로의 사용도 가능하다. 단, 구분을 위한 Param을 날려줘야 하겠다. =========================================================== select cd_trade from ftb_trade where (case when :m = '' then cd_trade end) in('01000') element Font font-family font-size font-style font-variant font-weight letter-spacing line-height text-decoration tex..
2011.07.15