解决方案 »
- 关于使用sql语句实现插入4000字符到CLOB字段的方式
- 谁有使用jdbcTemplate实现分页的MVC实现
- 如何把PLSQL中SQL中的变量替换成常量
- 求详细步骤解决“所有的重做日志都需要归档”的问题
- 求助各位大侠,如何在Oracle与MS-SQL数据库之间做数据同步!!!!急!急!!!急!!!!!
- 为何加优化注释在sql语句在单独执行可用,放在在存储过程中却不起作用?
- 关于函数的问题,在线等
- Oracle数据库中系统表PBCATCOL是如何建立的?
- 关于创建存储过程或触发器的问题??? (具体)
- 关于oracle如何在不同网段上连接
- oracle 的 全局静态变量如何使用
- 一个诡异的问题,关于调用oracle函数
SELECT NVL(B.ID,NVL(C.ID,A.DETAILID))
FROM FX_DELIVERYCHECKLIST B,FX_RETURNBOOKCHECKLIST C
WHERE A.DETAILID=B.OLDIDENTIFY AND C.OLDIDENTIFY=A.DETAILID)用这样的语句是否会好点?
有没有高手指点下这两种查询的区别第2部分一样的写法
--与发货明细关联
UPDATE FX_ACCOUNTDETAILS A SET A.DETAILID=(
SELECT
CASE WHEN B.ID IS NULL THEN A.DETAILID
ELSE B.ID
END
FROM
FX_DELIVERYCHECKLIST B
WHERE A.DETAILID=B.OLDIDENTIFY
),
A.INVOICETYPE=(
SELECT
CASE WHEN B.ID IS NULL THEN NULL
ELSE 0
END
FROM
FX_DELIVERYCHECKLIST B
WHERE A.DETAILID=B.OLDIDENTIFY
);
COMMIT;
--与退货明细关联
UPDATE FX_ACCOUNTDETAILS A SET A.DETAILID=(
SELECT
CASE WHEN B.ID IS NULL THEN A.DETAILID
ELSE B.ID
END
FROM
FX_RETURNBOOKCHECKLIST B
WHERE A.DETAILID=B.OLDIDENTIFY
),
A.INVOICETYPE=(
SELECT
CASE WHEN B.ID IS NULL THEN NULL
ELSE 1
END
FROM
FX_RETURNBOOKCHECKLIST B
WHERE A.DETAILID=B.OLDIDENTIFY
);
COMMIT;