oracle语句,求助!!!
发布网友
发布时间:2022-04-09 04:45
我来回答
共2个回答
热心网友
时间:2022-04-09 06:15
如果1中的结果就是你的初始结果,那么2的结果可以是如下sql:
with results as ( --不知道你的版本是否支持with
SELECT p.seccode_pub205,
(select *
from (select a.thscode_hq HQDM
from pub205 a
where a.f002v_pub205 like '002%'
and a.thscode_hq is not null
and a.thsmarket_code_hq = -119
order by 1 desc) a
where rownum <= 1) "mx", --个人习惯这里将max 改为mx
'-119' "行情代码"
FROM pub205 p
WHERE f002v_pub205 LIKE '002%'
AND f005v_pub205 = '212004'
AND isvalid = 1
AND DECODE(f017v_pub205, NULL, '1', f017v_pub205) <> '213008'
/* AND p.thscode_hq IS NULL*/
AND p.thsmarket_code_hq IS NULL
AND P.F003V_PUB205 NOT LIKE '%式回购'
ORDER BY f002v_pub205,
DECODE(length(seccode_pub205), 6, 0),
seccode_pub205,
f007d_pub205 )
select seccode_pub205,
substr(results.mx,1,1)||lpad(to_number(substr(results.mx,2))+rownum,5,'0') m,
'-119' "行情代码" from results ; --这里是关键,我用的是拼凑,截取第一个字母,最大数字行号是你想要的数字吧?然后加上补足的5个数字。缺点是有一定局限,有点是比较直接,不用正则表达式
求采纳为满意回答。
热心网友
时间:2022-04-09 07:33
如果1中的结果就是你的初始结果,那么2的结果可以是如下sql:
with results as ( --不知道你的版本是否支持with
SELECT p.seccode_pub205,
(select *
from (select a.thscode_hq HQDM
from pub205 a
where a.f002v_pub205 like '002%'
and a.thscode_hq is not null
and a.thsmarket_code_hq = -119
order by 1 desc) a
where rownum <= 1) "mx", --个人习惯这里将max 改为mx
'-119' "行情代码"
FROM pub205 p
WHERE f002v_pub205 LIKE '002%'
AND f005v_pub205 = '212004'
AND isvalid = 1
AND DECODE(f017v_pub205, NULL, '1', f017v_pub205) <> '213008'
/* AND p.thscode_hq IS NULL*/
AND p.thsmarket_code_hq IS NULL
AND P.F003V_PUB205 NOT LIKE '%式回购'
ORDER BY f002v_pub205,
DECODE(length(seccode_pub205), 6, 0),
seccode_pub205,
f007d_pub205 )
select seccode_pub205,
substr(results.mx,1,1)||lpad(to_number(substr(results.mx,2))+rownum,5,'0') m,
'-119' "行情代码" from results ; --这里是关键,我用的是拼凑,截取第一个字母,最大数字行号是你想要的数字吧?然后加上补足的5个数字。缺点是有一定局限,有点是比较直接,不用正则表达式
请采纳答案,支持我一下。