본문 바로가기

Programming/MS-SQL

(8)
[MS-SQL] 크로스탭 보고서/PIVOT/가로 세로 변환 쿼리 아... 이건 할 때마다 머리 아프구나. 예전에 했던건데 또 해볼라니까 잘 안되서 검색을 해봤더니 가로 세로 변환 쿼리라는 말 말고 크로스탭 보고서 라는 정식 명칭이 있다는 걸 처음 알았다. 일단 링크만 걸어놓고 나중에 정리하자. 1. http://flashcafe.org/?mid=sqlserver_study&document_srl=4140&sort_index=readed_count&order_type=desc 2. http://www.devpia.com/Maeul/Contents/Detail.aspx?BoardID=41&MaeulNo=17&no=2789&ref=2788 3. http://www.sqler.com/?mid=bSQLQA&listStyle=webzine&sort_index=readed_cou..
[MS-SQL] SET IDENTITY_INSERT 오늘 하려다 보니까 갑자기 이런 에러가 발생했다. 테이블 A에 있는 ID열의 명시적 값은 열 목록이 상요되고 IDENTITY_INSERT 가 ON일 때만 지정할 수 있습니다. 이 메세지가 나오는 이유는 추측이지만 이런것 같다. INSERT ... SELECT 사용 시 TABLE 명 뒤에 컬럼 정의를 안하면 발생하는 에러로 보인다. 따라서 INSERT ... SELECT 사용 시에는 반드시 컬럼명을 명시해줘야만 에러가 발생하지 않는다. 그리고 INSERT ... SELECT 하기 전에 SET IDENTITY_INSERT 테이블명 ON 또는 SET IDENTITY_INSERT 테이블명 OFF 를 적절히 사용해줘야만 문제 없이 입력될 것이다. SET IDENTITY_INSERT 테이블명 ON 은 인덱스를 수동..
[MS-SQL] 달력 테이블 만들기 OUTER JOIN을 해서 데이터가 없는 날짜의 결과까지 모두 조회되는 통계 페이지를 만들기 위해서 열심히 찾아다닌 내용을 정리한다. -- 임시테이블 생성select top 400--숫자값은 유동적으로 변경 가능 IDENTITY(int, 1, 1) nointo #temp_nofrom zipcode --> 1년 보다 큰테이블 아무거나.--calendar 테이블 생성create table calendar (cIdx int identity(1,1) not null, date datetime not null default getdate())-- 삽입insert into Calendarselect new_datefrom (select cast('20050101' as datetime) + no - 1 new_da..
mssql rownum 사용하기 select identity(int ,1 ,1) as rownum, a.* into #temp from [tablename] a; select * from #temp;
[MSSQL] 임시테이블 생성 출처 : http://kr.blog.yahoo.com/jamesjine/1456817.html 임시 테이블 지역 및 전역 임시 테이블을 만들 수 있습니다. 지역 임시 테이블은 현재 세션에서만 볼 수 있으며 전역 임시 테이블은 모든 세션에서 볼 수 있습니다. 지역 임시 테이블 이름 앞에는 숫자 기호가 하나 추가되고(예: #table_name) 전역 임시 테이블 이름 앞에는 숫자 기호가 두 개 추가됩니다(예: ##table_name). SQL 문은 CREATE TABLE 문의 table_name에 대해 지정된 값을 사용하여 임시 테이블을 참조합니다. CREATE TABLE #MyTempTable (cola INT PRIMARY KEY) INSERT INTO #MyTempTable VALUES (1) 여러 사..
[MS-SQL] Alter table 명령어 정리 --컬럼 추가 alter table [TABLE_NAME] add [COLUMN_NAME] [데이터유형] [default value] [not null]; --제약조건 삭제 alter table [TABLE_NAME] drop constraint [제약조건key]; --컬럼 삭제 alter table [TABLE_NAME] drop column [COLUMN_NAME];
[MS-SQL] 문자열에서 지정한 식의 시작 위치 반환 출처 : MS-SQL Server 온라인 설명서 CHARINDEX 문자열에서 지정한 식의 시작 위치를 반환합니다. 구문 CHARINDEX ( expression1 , expression2 [ , start_location ] ) 인수 expression1 검색될 문자의 시퀀스가 포함된 식입니다. expression1은 짧은 문자 데이터 형식 범주의 식입니다. expression2 지정한 시퀀스를 검색할 열을 가리키는 식입니다. expression2는 문자열 데이터 형식 범주입니다. start_location expression2에서 expression1을 검색하기 시작하는 문자 위치입니다. start_location을 지정하지 않거나 음수 또는 0을 지정하면 expression2의 처음부터 검색하기 시작..
[MS-SQL] HTML 태그 제거하고 조회하기 이 작업을 하려면 MS-SQL에 사용자 함수를 추가해줘야 한다. 1. INSTR create function dbo.INSTR ( @Start INTEGER = 1 --시작 , @String1 nvarchar(600) --문자열1 , @String2 nvarchar(600) --문자열2 ) RETURNS INTEGER AS BEGIN WHILE LEN(@String1) - @Start > = 0 BEGIN IF SUBSTRING(@String1, @Start, LEN(@String2)) = @String2 BREAK SET @Start = @Start + 1 END IF @Start > LEN(@String1) SELECT @Start = 0 RETURN @Start END 2. fnHTMLtoTEXT ..