THEN A.REL_ENT_NUM
ELSE (CASE WHEN A.BUS_TYP_CD IN('10010015') THEN A.DRW_ACT ELSE A.PYE_ACT END)
END) =B.CRD_NUM
若不成立,
简德成 2011-02-16
若不成立,难道是 ELSE (CASE WHEN A.BUS_TYP_CD IN('10010015') THEN A.DRW_ACT ELSE A.PYE_ACT END) 此条件成立,则A.DRW_ACT =B.CRD_NUM,不成立则A.DRW_ACT=A.PYE_ACT ,不知是否正确,请指教!
曾晨 2011-02-17
前面的好看 我给楼主拆一下楼主就知道什么意思了
如果A.BUS_TYP_CD IN('10010015')成立,SQL语句为
(CASE WHEN A.ENT_ACT_TYP_CD IS NOT NULL AND A.ENT_ACT_TYP_CD<>'' AND A.REL_ENT_NUM IS NOT NULL AND A.REL_ENT_NUM <>''
THEN A.REL_ENT_NUM
ELSE A.DRW_ACT END)
END)=B.CRD_NUM
我们先将此SQL语句定义为strSQL1
若A.BUS_TYP_CD IN('10010015')不成立,SQL语句为
A.BUS_TYP_CD IN('10010015')成立,SQL语句为
(CASE WHEN A.ENT_ACT_TYP_CD IS NOT NULL AND A.ENT_ACT_TYP_CD<>'' AND A.REL_ENT_NUM IS NOT NULL AND A.REL_ENT_NUM <>''
THEN A.REL_ENT_NUM
ELSE A.PYE_ACT END)
END)=B.CRD_NUM
我们将此SQL语句定义为strSQL2
曾晨 2011-02-17
上面看懂了的话那我就开始拆了
第一种情况:若A.ENT_ACT_TYP_CD IS NOT NULL AND A.ENT_ACT_TYP_CD<>'' AND A.REL_ENT_NUM IS NOT NULL AND A.REL_ENT_NUM <>'' 条件成立,结果为:A.REL_ENT_NUM = B.CRD_NUM
第二种情况:若A.ENT_ACT_TYP_CD IS NOT NULL AND A.ENT_ACT_TYP_CD<>'' AND A.REL_ENT_NUM IS NOT NULL AND A.REL_ENT_NUM <>'' 条件不成立且A.BUS_TYP_CD IN('10010015')成立,那么结果为A.DRW_ACT = B.CRD_NUM
第三种情况:若A.ENT_ACT_TYP_CD IS NOT NULL AND A.ENT_ACT_TYP_CD<>'' AND A.REL_ENT_NUM IS NOT NULL AND A.REL_ENT_NUM <>'' 条件不成立且A.BUS_TYP_CD IN('10010015')不成立,那么结果为 A.PYE_ACT END =B.CRD_NUM
曾晨 2011-02-17
楼主的这种比较少见,一般都是变量在前面的,跑后面去=就不太看明白什么意思了
简德成 2011-02-18