본문 바로가기

잡동/MSSQL21

ORDER BY string as number ORDER BY를 하려고하다보면 STRING형태로 저장된 INT값이 있다1,2,3,4, ... 10데이터베이스에서는1102345 해당형태로 출력될것이다. 그럴때는 SELECT * FROM TABLEORDER BY LEN(col), col일단 길이순으로 잡고 그다음은 숫자순으로 잡으면 원하는 형태의 정렬이 될것이다. 또 다른방법으로는 ABS를 이용한방법SELECT * FROM TABLEORDER BY ABS(col) 2018. 11. 6.
OFFSET FETCH 절 (페이징,LIMIT) MSSQL 2012전에는 페이징을 만들때 between을이용해서 만들어야했다. 하지만 2012에서는 OFFET FETCH절을 이용해서 해당효과를 얻을수 있다. https://technet.microsoft.com/ko-kr/library/gg699618(v=sql.110).aspx 제약사항 1. order by절이 꼭 필요하다. 2. fetch를 사용하려면 꼭 offset절이 필요하다. 예제1 SELECT * FROM TABLE ORDER BY column OFFSET 10 ROWS; 해당형태의 쿼리는 첫 10개의 행을 건너뛰고 나머지행을 반환한다. 예제2 SELECT * FROM TABLE ORDER BY column OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY; 10개를 건너.. 2018. 8. 8.
INSERT 문의 행 값 식 수가 최대 허용 행 값 수 1000을(를) 초과합니다. 1. 오류현상Microsoft OLE DB Provider for SQL Server 오류 '80040e14'INSERT 문의 행 값 식 수가 최대 허용 행 값 수 1000을(를) 초과합니다.2. 검색https://msdn.microsoft.com/ko-kr/library/dd776382(v=sql.120).aspx테이블 값 생성자는 INSERT … VALUES 문의 VALUES 목록에서 직접 사용되거나, 파생 테이블이 허용되는 모든 위치의 파생된 테이블로 사용될 수 있습니다. VALUES 목록에 직접 행을 삽입하여 생성할 수 있는 최대 행 수는 1000개입니다. 이 경우 행 수가 1000개를 초과하면 오류 10738이 반환됩니다. 1000개 이상의 행을 삽입하려면 다음 방법 중 하나를 사용합니다.ins.. 2018. 8. 8.
CAST 및 CONVERT(Transact-SQL) 자주쓰는데 매번 까먹어서 적는 CAST, CONVERT https://docs.microsoft.com/ko-kr/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-2017SELECT 9.5 AS Original, CAST(9.5 AS int) AS int, CAST(9.5 AS decimal(6,4)) AS decimal; SELECT 9.5 AS Original, CONVERT(int, 9.5) AS int, CONVERT(decimal(6,4), 9.5) AS decimal;결과값Original int decimal 9.5 9 9.5000 -- CAST Syntax: CAST ( expression AS data_type [ ( l.. 2018. 7. 24.
MSSQL 오늘 convert를 이용하여 처리https://docs.microsoft.com/ko-kr/sql/t-sql/functions/cast-and-convert-transact-sql?view=sql-server-2017CONVERT ( data_type [ ( length ) ] , expression [ , style ] ) 3개의 인자값을 갖는다. 날짜및 시간스타일을 이용하지만20 또는120 (2)ODBC 표준yyyy-mm-dd hh:mi:ss(24h)20또는 120 사용시 ODBC 표준을 이요한다. 해당형태로 쿼리를 하게되면 SELECT convert(varchar(10),getdate(),120)오늘의 날짜를 반환한다.쿼리 결과값 : 2018-07-11 필요한 오늘값을 가져오기위한 쿼리는 SELECT .. 2018. 7. 11.
SELECT 문에 EXIST문사용 특정 카테고리 항목에 대해서 해당 항목에 포함되는 내용이 존재할경우 Y표시를 해야했다.CASE WHEN THEN 과 EXSIT를 혼합하여 쿼리를 짯다. SELECT *, (CASE WHEN EXIST( SELECT * FROM AAA aa WHERE getdate() BETWEEN aa.시작일 AND aa.종료일 AND aa.idx = bb.idx)) THEN 'Y' ELSE 'B' END) AS NEW WHERE BBB bb 결론 : SELECT ( CASE WHEN EXISTS ( 원하는 쿼리 ) THEN 'Y' ELSE 'N' END ) AS YN 2018. 5. 31.
이번주 월요일~ 일요일 구하기 http://blog.naver.com/PostView.nhn?blogId=smart_guy&logNo=220393069177 SELECT DATEADD(wk, DATEDIFF(d, 0, getdate()) / 7 - 1, 0) AS '저번주 월요일' SELECT DATEADD(wk, DATEDIFF(d, 0, getdate()) / 7 - 1, 1) AS '저번주 화요일' SELECT DATEADD(wk, DATEDIFF(d, 0, getdate()) / 7 , 0) AS '저번주 월요일' SELECT DATEADD(wk, DATEDIFF(d, 0, getdate()) / 7 , 1) AS '저번주 화요일' WHERE __ BETWEEN DATEADD(wk, DATEDIFF(d, 0, getdate().. 2018. 5. 9.
작업스케쥴러 작업스케쥴을 만들때의 방법1. 관리 -> 유지관리계획2. 마우스오른쪽 클릭 -> 새 유지 관리 계획3.관리명 입력4. 하위계획_1 부분 더블클릭 5. 이름과 설명부분 입력 일정부분사용시 일정오른쪽 달력부분 클릭 6. 원하는 형태를 넣는데개인적으로는 되풀이로 일별 시간을 지정해서 많이 사용한다. 7. 왼쪽편의 도구상자를 클릭하면 유지 관리 계획 태스크를 선택할 수 있다.8. 그중에 예를들어 T-SQL문쪽을 사용하였다. 오른쪽에 T-SQL문 실행 태스크를 빈화면에 드래그하면 된다. 기본적으로는 데이터베이스 백업을 많이 사용했던거같은데 지금은 T-SQL문을 넣었다. 9. 실행태스크를 더블클릭하면 SQL문을 넣을수있다. 샘플 데이터베이스를 선택하고 일주일이 지난 로그데이터를 삭제하는 구문을 넣었다. 10. 실행.. 2018. 4. 19.
INTERSECT(교집합), EXCEPT(차집합) INTERSECT(교집합), EXCEPT(차집합)1. INTERSECT- SELECT * FROM TableA INTERSET SELECT * FROM TableB ( TableA 와 TableB 가 일치하는 결과를 리턴 )- 교집합 개념2. EXCEPT- SELECT * FROM TableA EXCEPT SELECT * FROM TableB ( TableA Row 내용 중 TableB와 Row 내용이 같지 않거나 TableA 에는 있는데 TableB에는 없는 데이터를 리턴 )- 차집합 개념3. 주의 사항- TableA 와 TableB 의 컬럼의 갯수와 순서가 동일해야 함- 각 상호 비교되는 컬럼들의 데이터 형식이 호환되어야 함 2018. 1. 31.