使用IBM Informix Dynamic Server版本10.00.fc9

我想用一个设置多个字段值 CASE 堵塞。这可能吗?我是否必须重新评估每个字段集的相同条件?

我当时想到了这些路线:

SELECT CASE WHEN p.id = 9238 THEN ('string',3) END (varchar_field, int_field);

在哪里 THEN 部分将定义类似于语法的字段的“数组”

INSERT INTO table (field1,field2) values (value1,value2)

另外,可以通过 CASE An UPDATE 陈述?

UPDATE TABLE SET (field1,field2) = CASE WHEN p.id=9238 THEN (value1,value2) END;

有帮助吗?

解决方案

通常,我会要求您使用的Informix版本,但这一次可能并不重要。简单回答是不'。

一个更复杂的答案可能会使用行类型构造函数讨论,但这可能不是您在输出上想要的。而且,鉴于上述内容,那么更新将无法正常工作(如果要进行的话,则需要额外的括号)。

其他提示

不, CASE 语句解决了一个表达式(请参阅 IBM Informix SQL指南:语法案例表达式),可以在允许表达式的地方使用。表达式是单个值。

http://en.wikipedia.org/wiki/expression_%28 programmming%29

一个 表达 在编程语言中,根据特定编程语言的特定优先级规则和关联性的特定规则和关联语言来解释明确的值,常数,变量,运算符和功能,该语言计算然后产生(返回,在状态环境中返回) )另一个值。

找到了一种简单的方法,可以在这里找到它:如何使listView行颜色根据行中的数据更改

解决方案只是将案例语句添加到我的SQL语句中。只是女仆我的生活要轻松。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top