본문 바로가기

.Net Developer 현 Mazelone 책임 개발자. SkillsAngular, IonicFramework, Tizen Wearable, Android MobileNgrx, SignalR.Net Core 2.x ProjectmzoEditor (vanilla javascript)mzoSurvey (IonicFramework, .Net Core)mzoTracker (Angular, .Net Core)Rehab (Angular, .Net Core)LASoR (Tizen 4.0 wearable, Android, .Net Core) 전 Kaonsoft 선임연구원 Kaonsoft?모바일 엔터프라이즈 솔루션 및 부가적인 모바일 솔루션 제공.http://www.kaonsoft.co.kr/ http://www.kaonsoft.com/ Sk.. 더보기
Way to access the next row value 특정 record에 연속된 (다음 id, 하지만 연속적이지는 않을 수 있는) record를 가져오는 방법입니다. 이를 구현하기 위해서 CTE(Common table expression)을 이용하였습니다. ROW_NUMBER()를 이용하여 연속된 번호를 부여한 뒤에 Join하는 형태의 전략으로 접근하였습니다. WITH CTE AS ( SELECT ROW_NUMBER() OVER (ORDER BY id DESC) AS RowNo , * FROM Log WITH (NOLOCK) WHERE dailyID = 191 AND type = 1 ) SELECT CUR.id , CUR.dailyID , CUR.type , '|' AS'|' , NXT.id , NXT.dailyID , NXT.type FROM CTE AS.. 더보기
Insert or update at once 고전적인 방식은 IF EXIST THEN ~ ELSE ~ END 의 구문을 이용하여 분기 처리하는 방법이 있습니다.조금 진보한 방식으로 MERGE INTO를 사용하는 방법이 있을 수 있습니다. (MSSQL 2008~)이는 Oracle등의 DBMS에서도 지원하는 것으로 알고 있습니다.조건절에 작성한 부분은 실제 Insert/Update에서 생략이 되므로 타이핑할 양도 줄어드는 효과가 있습니다. MERGE INTO [T_N_USER_MOVIE_FAVORITES] -- 대상 table USING(SELECT '0' AS CNT) AS DUAL -- 관용 ON (UserIdx = $useridx$ -- 조건절 AND MovieIdx = $movieidx$) WHEN MATCHED THEN -- 일치하는 reco.. 더보기