SELECT CK.RESPERSON AS NAME
FROM CP_KPI_INFO_FY CK, CP_DIM_PROVIDER CP
WHERE CK.PROVIDERID = CP.ID AND cp.ID=变量a我现在想做个判断,如果变量a是‘provider’,那么就改成‘cp.id’我这样写行吗? SELECT CK.RESPERSON AS NAME
FROM CP_KPI_INFO_FY CK, CP_DIM_PROVIDER CP
WHERE CK.PROVIDERID = CP.ID AND (case when 变量a='provider' then 'cp.id' else {1} end)
FROM CP_KPI_INFO_FY CK, CP_DIM_PROVIDER CP
WHERE CK.PROVIDERID = CP.ID AND cp.ID=变量a我现在想做个判断,如果变量a是‘provider’,那么就改成‘cp.id’我这样写行吗? SELECT CK.RESPERSON AS NAME
FROM CP_KPI_INFO_FY CK, CP_DIM_PROVIDER CP
WHERE CK.PROVIDERID = CP.ID AND (case when 变量a='provider' then 'cp.id' else {1} end)
这就不是判断语句,这是赋值语句,怎么能加在where后面
FROM CP_KPI_INFO_FY CK, CP_DIM_PROVIDER CP
WHERE CK.PROVIDERID = CP.ID
AND CP.ID = case when 变量a='provider' then 'cp.id' else '{1}' end;
SELECT CK.RESPERSON AS NAME
FROM CP_KPI_INFO_FY CK, CP_DIM_PROVIDER CP
WHERE CK.PROVIDERID = CP.ID
AND CP.ID = case when 变量a='provider' then cp.id else 变量a end;
--or
SELECT CK.RESPERSON AS NAME
FROM CP_KPI_INFO_FY CK, CP_DIM_PROVIDER CP
WHERE CK.PROVIDERID = CP.ID
AND CP.ID = decode(变量a,'provider',cp.id,变量);
你这个 将变量a赋值为id 是要改变表记录,还是只要在where判断的时候临时用一下,如果临时用一下的话,8L正解,如果要改变表记录的话,必须要用update语句了
SELECT CK.RESPERSON AS NAME,
case when cp.ID='provider' then cp.id else 变量a end
FROM CP_KPI_INFO_FY CK, CP_DIM_PROVIDER CP
WHERE CK.PROVIDERID = CP.ID -- 2.where中判断(改成自己的表)
select case when n.a is null then m.deptno -- deptno是0就改为100
else 100
end
from scott.dept m,
(select 1 a from dual) n
where n.a(+) = (case when m.deptno = 0 then 1 else 0 end)