Question)
다름이 아니오라~ 엑셀 파일을 db에 패키지로 만들어 가져오는데
원본 파일의 특정 필드에 대해 FLAG같은걸 만들어서 새로운 필드를 추가할려고 하는데
테이블 복사 스크립트에서 SQL의 CASE문을 쓸려고 했는데 계속 구문 오류가 나드라구요
예)
select *, case when type='매출' then '01' else '02' end as TYPE_CODE
from `경영계획$`
위와 같이 흔한 SQL문의 CASE문을 썻습니다. 왜 구문 오류가 나는건지요?
아니면 다른 방법이 있는건가요? |
SELECT * , IIF(Type="매출", "01","02") as TYPE_CODE FROM `경영계획$` |
![](http://www.sqlleader.com/Pds/Board/SS2005TSQL/Editor/Img1.jpg)
![](http://www.sqlleader.com/Pds/Board/SS2005TSQL/Editor/Img2.jpg)
구분 |
T-SQL |
JET SQL |
Null 처리 |
COALESCE(Value, ValueToReturnIfNull) or ISNULL(Value, ValueToReturnIfNull) |
NZ(Value, ValueToReturnIfNull) |
Null 체크 |
WHERE Value IS NULL |
WHERE Value IS NULL or WHERE ISNULL(Value) |
문자열 중 부분 읽어오기 |
SUBSTRING(StringVal, StartPos, length ) ※ length 필수 |
MID(StringVal, StartPos, [length]) ※ length 옵션 |
문자열 내에서 문자 찾기 |
CHARINDEX(start, StringToSearch, StringToFind) |
INSTR(start, StringToSearch, StringToFind) |
문자열을 반대로 바꾸기 |
REVERSE(StringVal) |
STRREVERSE(StringVal) |
데이터 포멧 설정 |
어플리케이션이나 리포트에서 설정해야 함 |
Format(Value, FormatSpecification) ※ 출력 결과는 String형 |
LIKE 패턴 매칭 |
WHERE Column LIKE '%string%' WHERE Column LIKE '_string_' WHERE Column LIKE '[^a-z]' |
WHERE Column LIKE "*string*" WHERE Column LIKE "?string?" WHERE Column LIKE "[!a-z]" |
공백 제거 |
RTRIM(LTRIM(val)) |
TRIM(val) |
데이터 유형 변경 |
CONVERT(DATATYPE, value) or CAST(value AS datatype) |
CINT(value), CDBL(value), CDEC(value), CSTR(value), CDATE(value),CBOOL(value) |
조건 처리 |
CASE WHEN Condition THEN ReturnIfTrue ELSE ReturnIfFalse END |
IIF(Condition, ReturnIfTrue, ReturnIfValue) |
날짜 데이터 처리 |
WHERE SomeDate = '2006-01-01' ※ 문자열이 날짜로 암시적 변환이 일어나는 것임. |
WHERE SomeDate = #1/1/2005# |
날짜 데이터 함수 |
Date() 함수 이용 |
DATESERIAL(year,month,date) |
시간 데이터 함수 |
Time() 함수 이용 |
TIMESERIAL(Hour, minute, second) |
현재 날짜 및 시간 얻기 |
SELECT getdate() |
SELECT now() |
Boolen 값 |
WHERE Active=1 or WHERE Active=0 (Active 는 bit 데이터 타입) |
WHERE Active = True or WHERE Active = False (Active는 Boolean 데이터 타입) |
문자열 사용 |
SELECT 'This is a string' |
SELECT "This is a string" |
나머지(Modulo) 구하기 |
SELECT value1 % value2 |
SELECT value1 MOD value2 |
문자열 붙이기 |
Val1 + Val2 |
Val1 & Val2 |
SELECT 문에서 열 별칭 사용 |
예) A + B를 X로 정의한 경우 SELECT X, X+C as D FROM (SELECT A+B as X, C FROM ... ) tmp |
예) A + B를 X로 정의한 경우 SELECT A+B as X, X+C as D FROM ... |
'연구개발 > DTS & SSIS' 카테고리의 다른 글
SQL 2005 Agent 작업에서 프록시 설정하기 (0) | 2011.08.27 |
---|---|
오늘 날짜에 추가된 파일만 복사해오기 (0) | 2011.08.27 |
엑셀 파일과 테이블 데이터 동기화하기 (0) | 2011.08.27 |
외부에서 패키지 값 속성 설정하기 (0) | 2011.08.27 |
파일 처리 패키지 구현 (0) | 2011.08.27 |