一个SQL查询 高分求助

2025-03-23 23:02:50
推荐回答(5个)
回答1:

什么数据库先?
ORACLE的话有办法做到,其他的很难

既然是oracle, try this one, should be fine wor...

SELECT 金额, 号
FROM tab
START WITH 金额 = 3333
CONNECT BY PRIOR 变前金额 = 金额
UNION ALL
SELECT 变后金额 AS 金额, 变后号 AS 号
FROM tab
WHERE 金额 = 3333
ORDER BY 金额

写错了一个关键字START WITH,

回答2:

我看了半天没看懂 没理解 你的意思
不知道你所要的是什么结果
虽然结果写了可是跟你说的要求不符合呀
郁闷中。。。

回答3:

假设你的表名为 T,
select * from T where 号 in (select 号 from T where 金额='3333') order by 号

我看懂了你的意思,可你说这句话只有一条记录,有点受打击。

select 号 from T where 金额='3333' 这句执行后,得到的是一个集合,然后把所有号在这个集合的数据都选择出来,不是这样麽?怎么会只有一条呢。可以解析一下吗?

回答4:

我也没看懂题意,郁闷+1

回答5:

这是一次递归查询,语法如下
SELECT 金额,号 FROM TABLE
START WITH 金额=3000
CONNECT BY PRIOR 变前金额 = 金额