문제

한 열에 숫자 정수 값이있는 임시 테이블이 있습니다. 일부 기준에 따라 정수 값을 문자 값으로 바꾸거나 일부 기준에 따라 값 자체를 자동으로 삽입하는 다른 문자 유형 열을 추가하려고합니다.

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, ...

매뉴얼의 Case Syntax에 대한 자세한 내용

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;
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top