C# OLEDB로 엑셀 읽기 시 문자 또는 숫자가 읽히지 않을 때
엑셀 읽어서 체크드 리스트에 바인딩하고 있었다.테스트로 만든 엑셀에 데이터를 1열에 1, 2, 3, 4, AAA, 5, 6, 7 이렇게 넣었다.그런데 AAA가 빈 문자열로 읽혀지는 것이었다.그래서 구글링을 했더니 역시나 해답은 있었다.OLEDB 연결자에 IMEX=1을 추가해 주면 된다. 엑셀을 읽을 때, 처음 몇 로우를 읽은 후 얘가 문자열 타입인지 숫자 타입인지 결정한다고 한다. 그럴 경우, 다른 타입의 데이터가 들어가 있으면 위와같은 문제가 발생하는 것이었다.내 경우는 1, 2, 3, 4 읽었더니 "어!! 숫자네" 하다가 AAA가 나오니 무시한 거였드랬다.즉, 어땠든 IMEX는 Default가 0이다. IMEX=1로 하면 되더라는 말씀
2014. 9. 17.
MSSQL 피벗 사용하기
집계 쿼리 시 빈번하게 사용되는 피벗 쿼리MSSQL에서 피벗은 2005버전 이상부터 사용 가능하다. 하위 버전은 case when으로 구현해야 한다. 동적 피벗을 만들어서 사용하기도 하니 알아두도록 하자. -- Pivot table with one row and five columns SELECT 'AverageCost' AS Cost_Sorted_By_Production_Days, [0], [1], [2], [3], [4] FROM (SELECT DaysToManufacture, StandardCost FROM Production.Product) AS SourceTable PIVOT ( AVG(StandardCost) FOR DaysToManufacture IN ([0], [1], [2], [3], [..
2014. 7. 10.
오라클 DECODE, GREATEST 로 음수값 처리하기
음수면 0으로 반환하고 싶을 때, 처리하는 방법을 궁리했다. 구글의 힘으로 조합하니 아래와 같이 2가지 정도가 좋을 듯. 음수면 무조건 0을 반환하고 싶으면 GREATEST 함수를 사용하자.GREATEST(변수, 0) 하면 끝이다. 이 함수는 인자 중에 가장 큰 값을 반환해 주는 함수인데, 음수 보다 0이 크니 변수가 음수일 경우 0이 반환된다. 두번째는 부호에 따라 처리해야 하면DECODE(SIGN(변수), 1, 0, 변수)SIGN함수는 부호를 반환해 주는데, 양수면 1, 음수면 -1, 0이면 0이 반환된다. 그에 따라 알아서 사용하면 될 듯. 끝~
2013. 4. 10.