首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >可以在Oracle或sybase中运行,但不能在netezza中运行。获取错误错误:(2)不支持这种形式的相关查询-请考虑重写

可以在Oracle或sybase中运行,但不能在netezza中运行。获取错误错误:(2)不支持这种形式的相关查询-请考虑重写
EN

Stack Overflow用户
提问于 2016-02-10 01:13:22
回答 1查看 41关注 0票数 0

我的表数据如下。我必须找到hh_num列刚刚打印了第三列的预期结果,如下所示。

代码语言:javascript
复制
row_num rel_no  hh_num
1        0        1
2        6        1
3        8        1
4        0        4
5        0        5
6        0        6
7        2        6
8        3        6
9        6        6
10       0       10

我会像下面这样写一个查询。

当rel =0时,hh_num将与row_num相同,但当rel <>为0时,hh_num将是rel =0的row_num的最大值,但小于当前行数。

代码语言:javascript
复制
UPDATE table1
SET HH_NUM = (SELECT MAX(p.ROW_NUM) FROM table1 p WHERE p.REL = 0 and p.row_num < h.row_num  )
FROM table1 h
WHERE h.HH_NUM = 0
EN

回答 1

Stack Overflow用户

发布于 2016-02-10 04:01:12

代码语言:javascript
复制
create temp table table1 (
row_num int
,rel_no int
,hh_num int

);

insert into table1
select 1,        0,        null
union all
select 2,        6,        null
union all
select 3,        8,        null
union all
select 4,        0,        null
union all
select 5,        0,        null
union all
select 6,        0,        null
union all
select 7,        2,        null
union all
select 8,        3,        null
union all
select 9,        6,        null
union all
select 10,       0,       null;   

 update table1 a set hh_num = sub.hh_num
 from
 (select h.rowid as rown, h.row_num, h.rel_no, max(p.row_num) as hh_num
 from table1 h inner join
 table1 p
 on p.rel_no = 0 and p.row_num <h.row_num
 group by h.rowid, h.row_num, h.rel_no) sub
 where a.rowid=sub.rown;

  update table1 set hh_num = row_num
 where rel_no = 0;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35298065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档