2

使用 IBM Informix 动态服务器版本 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块来完成吗?UPDATE

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

4

3 回答 3

2

通常,我会询问您正在使用的 Informix 版本,但这次可能无关紧要。简单回答是不'。

更复杂的答案可能会讨论使用行类型构造函数,但这可能不是您想要的输出。并且,鉴于上述情况,那么 UPDATE 将无法正常工作(如果可以,则需要额外的括号)。

于 2010-10-19T18:46:22.293 回答
2

不,CASE语句解析为表达式(请参阅IBM Informix Guide to SQL:Syntax CASE 表达式),并且可以在允许使用表达式的地方使用。表达式是单个值。

来自http://en.wikipedia.org/wiki/Expression_%28programming%29

编程语言中的表达式是根据特定编程语言的特定优先级和关联规则解释的显式值、常量、变量、运算符和函数的组合,它计算然后生成(返回,在有状态的环境)另一个值。

于 2010-10-19T18:53:43.717 回答
0

在此处找到了一种简单的方法: 如何根据行中的数据更改列表视图行颜色

解决方案只是将 case 语句添加到我的 sql 语句中。只是让我的生活更轻松。

于 2017-04-19T19:09:11.257 回答