结果更新集专栏中,我有一个集合列的表。我想做一个子查询,它返回几个整数,并将结果放入该列集合中,但是我找不到通过SQL来完成的语法。我通过编写一个SQL过程来做同样的事情(把SET的结果放在SET变量和返回变量中),但是我试图在没有函数的情况下做同样的事情。可以做到吗?Informix的 - 从子查询
首先,我创建一个临时表:
CREATE TEMP TABLE table1 (
id INTEGER
, col2 SET(INT NOT NULL)
)
然后我写些测试数据:
INSERT INTO table1 (id) VALUES (1);
INSERT INTO table1 (id) VALUES (2);
现在这个工程:
UPDATE table1 SET col2 = SET{1,2};
...但我试图做到这一点,这是行不通的:
UPDATE table1 SET col2 = (SELECT id FROM table1) WHERE id = 1;
它返回此错误:
[Error Code: -9632, SQL State: IX000] Value does not match the type of column (col2).
是的,它适用于一个值;它也可以工作,如果我写这样的每个值的子选择:UPDATE table1 SET col2 = SET {(SELECT id FROM table1 WHERE id = 1),(SELECT id FROM table1 WHERE id = 2)} WHERE id = 1; ......但这显然不是我需要的解决方案。 :) – Domchi 2011-03-29 13:58:29
@Domchi:好的 - 好吧,我还没有做足够的工作来知道答案是什么,我不确定你真正想做什么,因为把整数ID转换成单例集合并不是很有趣以我的想法。 – 2011-03-29 14:08:20
我试图在一组中插入几个整数ID;整数是不相关子查询的输出。在这个简化的例子中,我试图将这个子选择的结果转换为一个集合:“SELECT id FROM table1”(它返回两个值,1和2)。问题是我不知道子选择会返回多少个整数,但绝对不只是一个。 – Domchi 2011-03-29 15:19:09