SQL -Informix- 열의 데이터 유형 변경 숫자에서 문자로 변경
문제
한 열에 숫자 정수 값이있는 임시 테이블이 있습니다. 일부 기준에 따라 정수 값을 문자 값으로 바꾸거나 일부 기준에 따라 값 자체를 자동으로 삽입하는 다른 문자 유형 열을 추가하려고합니다.
x <= 1 인 경우 "SP"로 변경하거나 새 열을 만들고 해당 행에 "SP"를 저장합니다.
x> 1 인 경우 "fa"로 변경하거나 새 열을 만들고 그 행에 "fa"를 저장합니다.
또한 Informix 버전의 임시 테이블에는 Alter 명령이 허용되지 않습니다.
해결책
yr_offset <= 1 그런 다음 "sp"else "fa"end case 인 경우 id, yr, case를 선택하십시오.
http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp?topic=/com.ibm.sqls.doc/sqls909.htm
다른 팁
당신은 맞습니다, 당신은 임시 테이블을 변경할 수 없습니다. 이 파생 값으로 추가 열을 추가하면 CASE
진술, 즉 :
SELECT enroll.ud, enroll.yr, (CASE
WHEN enrollsess.yr_offset <=1 THEN "FA"
ELSE "SP" END)::CHAR(2) AS sess, ...
캐스팅 (즉, 괄호와 ::CHAR(2)
)는 아마도 필요하지 않을 것입니다.
논리를 0/0이 아닌 것으로 표현할 수 있다면 (YR_OFFSET가 음수 일 경우 예제에서 명확하지 않음) 더 간단합니다.
SELECT enroll.id, enroll.yr,
DECODE(enrollsess.yr_offset, 0, "FA", "SP")::CHAR(2) AS sess, ...
SELECT enrollsess.id,
enrollsess.yr,
"SP" sess
FROM enrollsess
WHERE enrollsess.yr_offset <= 1
UNION
SELECT enrollsess.id,
enrollsess.yr,
"FA" sess
FROM enrollsess
WHERE enrollsess.yr_offset > 1
INTO TEMP enrollsess2 WITH NO LOG;
제휴하지 않습니다 StackOverflow