SELECT a1.SU36,a0.*,a2.*,
IF FN02==NULL
THEN FN02
ELSIF FN02!=NULL
THEN (
IF SJ2>SJ
THEN FN04
ELSE THEN SU36
END IF
)
END IF SU36
FROM FE_APP5.Z_DFXQ a0
LEFT JOIN FE_BASE5.SYS_USERS A1 ON A0.SU00=A1.SU00
LEFT JOIN FE_APP5.Z_TG_SCORE A2 ON A0.SU00=A2.FN02

我想實作當FN02不為空時,則判斷SJ2是否大于SJ,是的話則SU36的值為FN04,否則,SU36的值不變,但是這么寫報from不存在,請問該怎么寫合適呢
uj5u.com熱心網友回復:
if v_id is null thentodo…
end if;
uj5u.com熱心網友回復:
不過,要拼接到 select 中,要用 case when 語法。uj5u.com熱心網友回復:
select a1.SU36,a0.*,a2.*,decode(sign(SJ2-SJ),1,'FN04',SU36) FROM FE_APP5.Z_DFXQ a0LEFT JOIN FE_BASE5.SYS_USERS A1 ON A0.SU00=A1.SU00
LEFT JOIN FE_APP5.Z_TG_SCORE A2 ON A0.SU00=A2.FN02
這樣應該可以吧,用decode陳述句
uj5u.com熱心網友回復:
還有空值的話寫個where,分2段寫然后可以用union拼一下就好了uj5u.com熱心網友回復:
declare--FN02 T.FN02%TYPE,
SJ2 T.SJ2%TYPE,
SJ T.SJ%TYPE,
SU36 T.SU36%TYPE,
--FN04 T.FN04%TYPE;
BEGIN
SELECT T.SJ2 INTO SJ2,T.SJ INTO JS FROM T WHERE FN02 IS NOT NULL;
IF SJ2>SJ THEN
UPDATE T
SET SU36=FN04;
結構應該是這樣的,其他的就不幫你了
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/90771.html
標籤:基礎和管理
上一篇:程式訪問不了oracle資料庫
下一篇:查詢換表怎么寫sql陳述句
