본문 바로가기

MS SQL

오라클의 LEAD,LAG함수 MSSQL에선 이렇게 응용 사번 구분 일자 시간 32413 출근 2011-04-01 05:37 32413 퇴근 2011-04-01 18:10 32413 출근 2011-04-02 06:33 32413 퇴근 2011-04-02 14:12 32413 출근 2011-04-04 17:32 32413 퇴근 2011-04-05 06:14 32413 출근 2011-04-05 17:32 32413 퇴근 2011-04-06 06:13 32413 출근 2011-04-06 17:31 32413 퇴근 2011-04-07 06:14 32413 출근 2011-04-07 17:30 32413 퇴근 2011-04-08 06:15 32413 출근 2011-04-12 05:33 32413 퇴근 2011-04-12 18:10 32413 퇴근 2011-04-13 18.. 더보기
MS-SQL 비효율적인 인덱스 찾기(SQL) 책에서 발췌한 내용입니다. 유용하게 사용할수 있을것 같네요~~~ 비효율적인 인덱스 찾기 select OBJECT_NAME (s.object_id) as 'Table Name',i.name as 'Index Name', i.index_id, user_updates as 'Total Writes',user_seeks + user_scans + user_lookups as 'Total Reads', user_updates - (user_seeks + user_scans + user_lookups) as 'Difference' from sys.dm_db_index_usage_stats as s inner join sys.indexes as i on s.object_id = i.object_id and i.ind.. 더보기
Table 목록, Table Column과 Column Type 조회 /* 해당 데이터베이스 테이블 조회 */ SELECT TABLE_NAME AS T_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' ORDER BY TABLE_NAME /* 해당 테이블의 스키마 조회( 컬럼명, PK, ISNULL, 데이터 타입 ) */ SELECT COLUMN_NAME AS C_NAME, DATA_TYPE AS C_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'DEPT' /* 테이블별 상세 조회 */ SELECT A.TABLE_CATALOG,A.TABLE_SCHEMA,A.TABLE_NAME,B.ORDINAL_POSITION ,b.COLUMN_NAME,isnull.. 더보기
공백을 기준으로 문자열 자르기[MSSQL] 공백을 기준으로 문자열 자르는 함수입니다. 홍 길동 남궁 길동 이런식으로 데이터가 있을시에 공백을 기준으로 성과 이름을 구분할수 있습니다. ex> 전체 조회 쿼리입니다. SELECT * FROM MOLD_GIJONG 여기서 기종명을 공백 기준으로 나누고자 합니다. 먼저 공백을 기준으로 앞에 문자부터 잘라서 출력해보겠습니다. SELECT GIJONG_CODE,LEFT(GIJONG_NM,CHARINDEX(' ',GIJONG_NM)-1) AS NM FROM MOLD_GIJONG 다음은 공백을 기준으로 뒤에 문자를 출력해보겠습니다. SELECT GIJONG_CODE,SUBSTRING(GIJONG_NM,CHARINDEX(' ',GIJONG_NM)+1,LEN(GIJONG_NM)) AS NM FROM MOLD_GIJ.. 더보기