我有一个临时的表数字的整数值中的一个柱。我想要更换整数值与符价值观基础上的某些标准的或者我要补充另外一个列的性格类型自动地插入价值为本身根据某些标准。

如果x <=1,改为"SP"或作出新的柱和存储"SP"在行
如果x>1,改变为"FA"或作出新的柱和存储"FA"在行

此外,更改命令都是不允许在临时表在我的版本的Informix。

有帮助吗?

解决方案

SELECT id,年,情况下,当yr_offset <=1"SP"其他"FA"结束情况

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))可能是不必要的。

如果逻辑可以表示为零/非零(它不清楚你如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;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top