T.컬럼=조건값으로 조회된 값이 있다면 수정하고, 그렇지 않다면 새로 추가하기. MERGE INTO 테이블명 T USING (VALUES(1)) AS Source (Number) ON T.컬럼 = #{조건} WHEN MATCHED THEN UPDATE SET T.컬럼 = #{패러미터} ,T.컬럼 = GETDATE() ,T.컬럼 = #{패러미터} WHEN NOT MATCHED THEN INSERT (컬럼 , 컬럼 , 컬럼 ) VALUES (#{패러미터} , GETDATE() , #{패러미터} );
추석 연휴 5일 동안 집 밖으로 나가지 않고 하루종일 붙잡고 읽어서 겨우 끝낼 수 있었다. 내용이 어렵지는 않았으나 분량이 워낙 많고 인명/지명이 익숙치 않아 오래걸릴 수밖에 없었다. 투퀴디데스는 아테나이-아테나이 동맹국과 스파르테(라케다이몬)-스파르테 동맹국 간의 지리멸렬한 전쟁을 연대기 순으로 작성했다. 이 이야기는 전쟁이 일어나기 직전의 상황부터 시작하여 기원전 411년에서 갑자기 끊긴다. 즉, 미완인 책이다. (펠로폰네소스 전쟁은 기원전 431년~404년까지다.) 중간중간 투퀴디데스의 생각이 직접적으로 기술되기도 하지만, 거의 대부분은 전쟁과 관련한 사실들의 나열이다. 그럼에도 지루하지 않는 이유는 긴 영화 한 편을 보는 듯한 전투 묘사와 전쟁터에서 장군들의 연설, 각국의 사절단들이 오가며 쏟아내..
위와 같이 소속에 같은 데이터가 있을 경우 하나의 셀로 병합해주는 코드다. $(document).ready(function(e){ genRowspan("td 클래스명"); }); function genRowspan(className){ $("." + className).each(function() { var rows = $("." + className + ":contains('" + $(this).text() + "')"); if (rows.length > 1) { rows.eq(0).attr("rowspan", rows.length); rows.not(":eq(0)").remove(); } }); }
페이징이 되어있는 게시판에서 1페이지에서 체크했던 값들이 2페이지에 갔다가 다시 1페이지로 돌아와도 체크된 상태로 남아있도록 하는 로직을 고객이 아닌 PM이 요구하여 만들게 됐다. 체크박스 체크 상태가 유지되는 게시판을 여태 본 적도 없고, 이용하는 사람 입장에서도 왜 그렇게 해야 하는지는 모르겠으나.. 만들라고 하니까 만들었다. 처음엔 체크할 때마다 ajax처리해서 session으로 들고다닐까 하다가, 겨우 체크박스 하나 때문에 불필요한 서버-클라이언트 통신이 발생하는 것도 아닐 뿐더러 띄엄띄엄 하는 체크에 많은 양의 체크를 할 것 같지도 않아서 그냥 쿠키로 해결하기로 했다. 좀더 정리가 필요한 소스이긴 하지만, 더이상은 귀찮다. ㅡ.ㅡ;; Javascript단 var cookieName = "item..
간단하게 짤 수 있는 코드지만, 항상 필요할 때마다 타이핑하자니 귀찮아서 여기에 저장해놔야겠다. function setPeriod(period){ var startDate = getPastDate(period); var endDate = getRecentDate(); $("#startDate").val(startDate); $("#endDate").val(endDate); } function getRecentDate(){ var dt = new Date(); var recentYear = dt.getFullYear(); var recentMonth = dt.getMonth() + 1; var recentDay = dt.getDate(); if(recentMonth < 10) recentMonth = "0..
참으로 오랜만에 책리뷰를 쓴다. 그동안 책을 계속 읽긴 했으나 왠지 모르게 블로그에 손이 가지 않았다. 간만에 올리는 리뷰는 그 유명한 한강의 소설 『채식주의자』이다. 맨부커 상을 받았다고 해서 한동안 언론에서 떠들썩했었다. 사실 그래서 읽은 것은 아니다. 오히려 상을 받았거나 베스트셀러라고 하는 책들은 왠지 모르게 피하고 싶은 마음이다. 내가 이 책을 읽은 이유는 딱 하나다. "나의 외사친"이라는 예능 프로그램에서 스페인의 외딴 마을에 사는 어떤 외국인이 한국의 한강을 안다며 채식주의자를 읽었다고 했기 때문이다. 소설을 언급하며 엄지 손가락을 치켜세우는데, 정작 한국인인 내가 거기에 공감할 수 없음에 갑자기 부끄러워졌다. 오랜만에 들른 오프라인 서점에서 망설임없이 한강의 채식주의자를 골랐고, 작고 ..
간만에 간단한 것 하나 올려본다. 입력 화면에서 input 태그나 readonly인 태그를 제외한 타겟에서 백스페이스 키가 눌려서 이전 페이지로 이동하는 것을 막는 코드다. $(function() { $(document).keydown(function(e) { if(e.target.nodeName != "INPUT"){ if(e.keyCode == 8){ return false; } } if(e.target.readOnly){ // readonly일 경우 true if(e.keyCode == 8){ return false; } } }); });