我是SQL初學者,我不知道如何解決這個問題。如何將以下SQL查詢和存儲過程合併爲一個SQL查詢。這是一個PostgreSQL查詢和函數。任何幫助表示讚賞。將存儲過程和SQL查詢組合到一條SQL語句中
下面的查詢要求查詢的每個值的存儲過程/函數:
SELECT t.trj_id, T2.trj_id, Similar_trj_woffset(t.trj_id, T2.trj_id)
FROM transitions T1,
transitions T2
WHERE T1.w_s = T2.w_s
AND T1.w_e = T2.w_e
AND T1.trans_id <> T2.trans_id
存儲過程/函數是:
create or replace function similar_trj_woffset(
IN t1 as integer,
IN t2 as integer,
OUT score as integer,
OUT offset as integer
) AS $$
declare
off_set integer :=0;
score integer := 0;
cou integer;
time1 integer;
time2 integer;
dist integer;
begin
for off_set in 0..10 LOOP
time1 := 0;
time2 := 0 + off_set;
cou := 0;
while time2 < 100 Loop
select vec_length(P.x-P2.x,P.y-P2.y,P.z-P2.z) into dist
from AtomPositions P, AtomPositions P2
where P.trj_id = t1
and P2.trj_id = t2
and P.t = time1
and P2.t = time2;
if dist < cuto`enter code here`ff then
cou : = cou + 1;
time1 := time1 + 1;
time2 := time2 + 1;
end loop
if cou > score then
score := cou ;
offset := off_set;
end if;
off_set := off_set + 1;
end loop;
end $$ language plpgsql;
有人能告訴我如何合併查詢和存儲過程合併爲一個SQL查詢。
爲什麼你需要它? – shibormot 2013-03-10 01:03:30
我想合併它以便查詢優化。 – navin 2013-03-10 02:23:20